Linux创建Oracle数据库实例
上一篇安装了数据库,本文记录创建数据库实例步骤
1、安装步骤:
内存检查:内存检查,如果过小,则会报错,具体错误可以看最后的问题列表,我初始内存为2G,出错之后调成16G,具体的值我没有查验,小伙伴们可以自己查查资料,下边的内存数是公司服务器内存,不是我本机。
[root@node1 ~]# grep -i memtotal /proc/meminfoMemTotal: 263773908 kB
创建的ORACLE的SID
PS:以下操作都在oracle用户环境
#切换到oracle用户环境[root@node1 ~]# su - oracleLast login: Tue Mar 5 14:05:55 CST on pts/0#本次创建的ORACLE的SID为rmblc[oracle@node1 ~]$ export ORACLE_SID=rmblc#打印当前ORACLE的SID[oracle@node1 ~]$ echo $ORACLE_SIDrmblc
创建相应目录
#将rmblc换成自己的SID[oracle@node1 ~]$ mkdir -p $ORACLE_BASE/admin/rmblc/{a,b,c,u}dump[oracle@node1 ~]$ mkdir -p $ORACLE_BASE/admin/rmblc/pfile[oracle@node1 ~]$ mkdir -p $ORACLE_BASE/oradata/rmblc
创建初始化文件
#打开$ORACLE_HOME/dbs目录[oracle@node1 ~]$ cd $ORACLE_HOME/dbs[oracle@node1 dbs]$ lshc_orcl.dat init.ora lkORCL orapworcl spfileorcl.ora#复制初始化文件,明明规则init+实例名.ora[oracle@node1 dbs]$ cp init.ora initrmblc.ora[oracle@node1 dbs]$ lshc_orcl.dat init.ora initrmblc.ora lkORCL orapworcl spfileorcl.ora#编辑,将<ORACLE_BASE>换成对应的绝对路径,不知道的可以通过echo $ORACLE_BASE命令查看[oracle@node1 dbs]$ vi initrmblc.oradb_name='rmblc'#换成自己的SIDmemory_target=1Gprocesses = 150audit_file_dest='/u01/oracle/admin/rmblc/adump'#替换成自己的audit_trail ='db'db_block_size=8192db_domain=''db_recovery_file_dest='/u01/oracle/flash_recovery_area'#替换成自己的db_recovery_file_dest_size=2Gdiagnostic_dest='/u01/oracle'#替换成自己的dispatchers='(PROTOCOL=TCP) (SERVICE=rmblcXDB)'#rmblc将替换成自己的SIDopen_cursors=300remote_login_passwordfile='EXCLUSIVE'undo_tablespace='UNDOTBS1'# You may want to ensure that control files are created on separate physical# devicescontrol_files = (ora_control3, ora_control4)#原文件是1,2改成不一样的不然会报错compatible ='11.2.0'
创建密码文件
#将orapwrmblc的rmblc改成自己的SID,admin是密码[oracle@node1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwrmblc password=admin entries=5 force=y
PS:参考的博文说这里设置的是sys用户,密码是addb123,但是登陆提示错误,用原始密码可以登陆,不清楚设置的是什么密码,有知道小伙伴麻烦在下面告诉我一下
创建oracle的建库脚本 createdb.sql
#打开路径,[oracle@node1 dbs]$ cd $ORACLE_BASE/oradata/rmblc#创建文件[oracle@node1 rmblc]$ vi createdb.sqlcreate database rmblc #替换成自己的SIDMAXINSTANCES 1MAXLOGHISTORY 1MAXLOGFILES 5MAXLOGMEMBERS 5MAXDATAFILES 100DATAFILE'/u01/oracle/oradata/rmblc/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local #替换成自己的路径sysaux datafile'/u01/oracle/oradata/rmblc/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited #替换成自己的路径default temporary tablespace TEMP tempfile'/u01/oracle/oradata/rmblc/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited #替换成自己的路径undo tablespace UNDOTBS1 datafile'/u01/oracle/oradata/rmblc/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited #替换成自己的路径logfileGROUP 1 ('/u01/oracle/oradata/rmblc/redo1.dbf') size 10m, #替换成自己的路径GROUP 2 ('/u01/oracle/oradata/rmblc/redo2.dbf') size 10m, #替换成自己的路径GROUP 3 ('/u01/oracle/oradata/rmblc/redo3.dbf') size 10m #替换成自己的路径CHARACTER SET ZHS16GBKNATIONAL CHARACTER SET AL16UTF16;
执行建库和数据字典脚本
#检查当前SID是否为自己创建的[oracle@node1 rmblc]$ echo $ORACLE_SIDrmblc#连接数据库[oracle@node1 rmblc]$ sqlplus / as sysdba#执行这一句可能会提示错误,具体看问题列表SQL> startup nomoutSQL> @$ORACLE_BASE/oradata/rmblc/createdb.sql#执行需要点时间SQL> @?/rdbms/admin/catalog.sql;#执行需要点时间SQL> @?/rdbms/admin/catproc.sql;#执行需要点时间SQL> @?/rdbms/admin/catexp.sql;#执行需要点时间
修改监听配置文件listener.ora
[oracle@node1 rmblc]$ cd $ORACLE_HOME/network/admin[oracle@node1 admin]$ lslistener.ora samples shrept.lst sqlnet.ora tnsnames.ora#增加以下内容[oracle@node1 admin]$ vi listener.orarmblc =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)))(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.214.16)(PORT = 1522)))))SID_LIST_rmblc =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = rmblc)(ORACLE_HOME = /u01/oracle/product/11.2.0/db_1)(SID_NAME = rmblc)))LISTENER_FATPASE =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.214.16)(PORT = 1522))
启动监听
#这里要指明启动哪个数据库实例的监听[oracle@node1 admin]$ lsnrctl start rmblc
启动数据库服务
#查看以下自己当前的SID是否为创建的SID,如果不是执行下面命令重新设置[oracle@node1 admin]$ export ORACLE_SID=rmblc#连接[oracle@node1 admin]$ sqlplus / as sysdba#关闭服务SQL> shutdown#启动服务SQL> startup
数据库原始密码
1.用户名:sys 密码:change_on_install2.用户名:system 密码:manager3.用户名:scott 密码:tiger
修改密码,已经连接数据库
#修改密码,因为前面说设置了sys密码,其实设置的不是sys密码,所以想修改密码的可以执行下面命令#可以将sys替换成要修改的用户,将admin修改成自己想要的密码SQL> alter user sys identified by admin as sysdba;
2、问题列表:
Oracle启动报错ORA-00845: MEMORY_TARGET not supported on this system这个就是最早提到的如果内存不够,就会抱着个错误,把内存调大就行执行startup nomout会提示SP2-0714: invalid combination of STARTUP options错误
首先用quit或exit退出sql,执行命令echo $ORACLE_SID,确认SID是否正确,然后检查监听是否启动,再连接数据库执行startup,或者切换到root再切回来重新操作一遍执行创建数据库createdb.sql文件时,提示database name ‘PROD’ does not match parameter db_name ‘orcl’
原因是我重启系统了,没有重新设置SID执行sql文件的时候会有错误出现,比如ORA-04031: unable to allocate 3896 bytes of shared memory
我安装的时候出现这种错误提示,我没有理会,但是在执行倒数第二个还是最后一个sql文件时很久都没有执行完成,一直报错,我是重新执行这些sql文件的,第二遍执行的时候,安装过程没有特别明显的错误提示,太快闪过去的我看不到执行sql语句的时候会提示ORA-01034: ORACLE not available
退出sql然后确认SID是否正确使用sys用户连接ORACLE报错:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
使用plsql工具连接数据库时,最后连接为选项不要用normal,选择SYSDBA或者SYSOPER;
使用navicat连接数据库时,点击高级选项,选择SYSDBA或者SYSOPER;
[参考]
安装文档——/Trigl/article/details/53101888
安装文档——/kong2030/article/details/80572755
问题参考文档——/Linux/-11/109931.htm
问题参考文档——/xiaochina/p/7510239.html
问题参考文档——/qq_34169240/article/details/8476
问题参考文档——/junzixing1985/article/details/79521655
问题参考文档——/tototuzuoquan/article/details/52780949
如果觉得《Linux无界面创建Oracle数据库实例》对你有帮助,请点赞、收藏,并留下你的观点哦!