实例启动报错问题
sqlplus /nolog、conn /as sysdba、startup命令后显示
could not open parameter file /initORCL.ora'
参考 http://blog.csdn.net/lyayfy/article/details/9793735 方法1 : 解决方法1(已经验证):
将$ORACLE_BASE/admin /数据库名称/pfile目录下的init.ora.012009233838形式的文件copy到$ORACLE_HOME/dbs目录下 initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)
多实例创建问题
用dbca创建数据库即可,数据库名与实例一样即可。
创建好之后 用system (密码在创建的时候你设置的)连接 然后创建用户并授权
创建用户我用的dbvisual工作 操作的
授权用的sql操作的(针对用户1):
grant connect,resource to yonghu1;
grant dba to yonghu1;
oracle的用户想当于db2的schema, 一个数据库实例可以有多个用户 每个用户 可以各自创建一堆数据库对象(表啊什么的)。
附一张连接配置图
oracle多实例用一个监听 有一点需要注意
启动数据库的时候 我们通常是在用户的bash_profile中
export ORACLE_SID=ORCL
如果你这个时候
sqlpus /nolog
conn / as sysdba
startup
这个时候只会启动ORCL这个实例
我多实例 还有一个实例怎么办 比如我另一个实例是BJ
此时需要手动执行
export ORACLE_SID=bj
// 上面的设置要注意大小写 否则startup的时候 会出现 LRM-00109: could not open parameter file '/u01/oracle/db...
然后 再 sqlpus /nolog.....
然后再启动数据库...
然后就可以在lsnrctl status中看到两个实例了
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=p213.efwk.afcati.com)(PORT=1521)))
Services Summary...
Service "ORCLXDB.efwk.afcati.com" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "bj" has 1 instance(s).
Instance "bj", status READY, has 1 handler(s) for this service...
Service "bjXDB" has 1 instance(s).
Instance "bj", status READY, has 1 handler(s) for this service...
Service "orcl.efwk.afcati.com" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
乱码问题
oracle@p002:~> sqlplus /nolog
SQL
*Plus:>
Copyright (c)
1982, 2009, Oracle. All rights reserved.
SQL
> connect / as sysdba
Connected to an>
SQL
> shutdown immediate;
ORA
-01034: ORACLE not available
ORA
-27101: shared memory realm does not exist
Linux
-x86_64 Error: 2: No such file or directory
SQL
> startup mount
ORACLE instance started.
DB LINK与同义词
这种主要用于oracle中跨用户的表访问
oracle的用户相当于db2的schema db2的schema 可以互相访问 加上前缀即可,但是oracle不行 需要通过这个办法解决。
授予权限:
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to XTHIS;
grant CREATE DATABASE LINK to XTHIS;
创建db links:
CREATE DATABASE LINK "你的link名字.REGRESS.RDBMS.DEV.US.ORACLE.COM" CONNECT TO 需要被link的用户名> (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
)
(CONNECT_DATA=(SID=ORCL)
)
)';
// SID=ORCL 是你的连接sid的名字 如果你是service_name连接 则是 SERVICE_NAME=XXXX
建同义词:
CREATE OR REPLACE SYNONYM "你当前的用户名"."别名" FOR "被link的表名"@"你的link名字.REGRESS.RDBMS.DEV.US.ORACLE.COM";
验证:
select * from 别名
--EOF--