一、开启自启动的实现方法:
a. 设置oracle为开机自启动:
# vi /etc/oratab
应该在最后几行,有几行代码,以已有实例名称开头,以N结尾,把N改成Y,更改后如下:
orcl:/opt/oracle/app/product/11.2.0/dbhome_1:Y
cxhtest:/opt/oracle/app/product/11.2.0/dbhome_1:Y
test:/opt/oracle/app/product/11.2.0/dbhome_1:Y
b. 开机启动监听以及服务:
# vi /etc/rc.local
增加:
#!/bin/sh
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"
二、 新建的数据库名称中最好不要带下划线:_,因为带下划线的实例名的SID会自动将下划线去掉,造成某些操作的不统一。
三、 当一台数据库服务器上有多个数据库是实例时候,通过export ORACLE_SID=SIDNAME(数据库实例名),例如:export ORACLE_SID=orcl,来指定当前操作的数据库,使用 sqlplus / as sysdba(该命令只能用于在本地进行操作),将对登录到指定的ORACLE_SID数据库。
四、 instance_name 和 service_names 的值的查询:
show parameter service_names ;
show parameter instance_name;
五、 关于instance_name 和 service_names 的一些总结
这两个变量可以再initorcl.ora文件中进行更改。(不同实例对应的文件名不同,命名规则为:"init"+数据库实例名+".ora")
instance_name 一般情况下,会与ORACLE_SID保持一致,当在initest1.ora(数据库实例test1 的配置文件) 文件中手动声明 了一个 instance_name 时,show parameter instance_name 和 select status,instance_name from v$instance; 所显示的结果将不同 (前者为更改后的值,后者为更改前的值),这时, 查看lsnrctl status 中 ,改instance name 已经变为更改后的值,所以如果在tnsnames.ora 中寻找服务的方式为通过SID时,应将改SID变为更改后的instance_name
service_names 在没指定的情况下为 db_name+db_domain, 如果指定的名字不包括 db_domain ,则service_name 为 指定名字+db_domain,如果指定的名字包括域名,service_name为 指定名字。
下图左侧为指定service_name=aaa,db_domain=123,右侧为未指定这两个变量,lsnrctl status 中显示效果:
下图左侧为指定service_name=aaa,db_domain=123,右侧为指定service_name=aaa.123,db_domain=123,lsnrctl status 中显示效果: