Linux创建Oracle数据库实例
上一篇安装了数据库,本文记录创建数据库实例步骤
1、安装步骤:
- 内存检查 :
内存检查,如果过小,则会报错,具体错误可以看最后的问题列表,我初始内存为2G,出错之后调成16G,具体的值我没有查验,小伙伴们可以自己查查资料,下边的内存数是公司服务器内存,不是我本机。
[root@node1 ~]# grep -i memtotal /proc/meminfo
MemTotal: 263773908 kB
- 1
- 2
- 创建的ORACLE的SID
PS:以下操作都在oracle用户环境
#切换到oracle用户环境
[root@node1 ~]# su - oracle
Last login: Tue Mar 5 14:05:55 CST 2019 on pts/0
#本次创建的ORACLE的SID为rmblc
[oracle@node1 ~]$ export ORACLE_SID=rmblc
#打印当前ORACLE的SID
[oracle@node1 ~]$ echo $ORACLE_SID
rmblc
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 创建相应目录
#将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
- 1
- 2
- 3
- 4
- 创建初始化文件
#打开$ORACLE_HOME/dbs目录
[oracle@node1 ~]$ cd $ORACLE_HOME/dbs
[oracle@node1 dbs]$ ls
hc_orcl.dat init.ora lkORCL orapworcl spfileorcl.ora
#复制初始化文件,明明规则init+实例名.ora
[oracle@node1 dbs]$ cp init.ora initrmblc.ora
[oracle@node1 dbs]$ ls
hc_orcl.dat init.ora initrmblc.ora lkORCL orapworcl spfileorcl.ora
#编辑,将<ORACLE_BASE>换成对应的绝对路径,不知道的可以通过echo $ORACLE_BASE命令查看
[oracle@node1 dbs]$ vi initrmblc.ora
db_name='rmblc'#换成自己的SID
memory_target=1G
processes = 150
audit_file_dest='/u01/oracle/admin/rmblc/adump'#替换成自己的
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/oracle/flash_recovery_area'#替换成自己的
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/oracle'#替换成自己的
dispatchers='(PROTOCOL=TCP) (SERVICE=rmblcXDB)'#rmblc将替换成自己的SID
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control3, ora_control4)#原文件是1,2改成不一样的不然会报错
compatible ='11.2.0'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 创建密码文件
#将orapwrmblc的rmblc改成自己的SID,admin是密码
[oracle@node1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwrmblc password=admin entries=5 force=y
- 1
- 2
PS:参考的博文说这里设置的是sys用户,密码是addb123,但是登陆提示错误,用原始密码可以登陆,不清楚设置的是什么密码,有知道小伙伴麻烦在下面告诉我一下
- 创建oracle的建库脚本 createdb.sql
#打开路径,
[oracle@node1 dbs]$ cd $ORACLE_BASE/oradata/rmblc
#创建文件
[oracle@node1 rmblc]$ vi createdb.sql
create database rmblc #替换成自己的SID
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE
'/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 #替换成自己的路径
logfile
GROUP 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 ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 执行建库和数据字典脚本
#检查当前SID是否为自己创建的
[oracle@node1 rmblc]$ echo $ORACLE_SID
rmblc
#连接数据库
[oracle@node1 rmblc]$ sqlplus / as sysdba
#执行这一句可能会提示错误,具体看问题列表
SQL> startup nomout
SQL> @$ORACLE_BASE/oradata/rmblc/createdb.sql#执行需要点时间
SQL> @?/rdbms/admin/catalog.sql;#执行需要点时间
SQL> @?/rdbms/admin/catproc.sql;#执行需要点时间
SQL> @?/rdbms/admin/catexp.sql;#执行需要点时间
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 修改监听配置文件listener.ora
[oracle@node1 rmblc]$ cd $ORACLE_HOME/network/admin
[oracle@node1 admin]$ ls
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora
#增加以下内容
[oracle@node1 admin]$ vi listener.ora
rmblc =
(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))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 启动监听
#这里要指明启动哪个数据库实例的监听
[oracle@node1 admin]$ lsnrctl start rmblc
- 1
- 2
- 启动数据库服务
#查看以下自己当前的SID是否为创建的SID,如果不是执行下面命令重新设置
[oracle@node1 admin]$ export ORACLE_SID=rmblc
#连接
[oracle@node1 admin]$ sqlplus / as sysdba
#关闭服务
SQL> shutdown
#启动服务
SQL> startup
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 数据库原始密码
1.用户名:sys 密码:change_on_install
2.用户名:system 密码:manager
3.用户名:scott 密码:tiger
- 1
- 2
- 3
- 修改密码,已经连接数据库
#修改密码,因为前面说设置了sys密码,其实设置的不是sys密码,所以想修改密码的可以执行下面命令
#可以将sys替换成要修改的用户,将admin修改成自己想要的密码
SQL> alter user sys identified by admin as sysdba;
- 1
- 2
- 3
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;
[参考]
安装文档——https://blog.csdn.net/Trigl/article/details/53101888
安装文档——https://blog.csdn.net/kong2030/article/details/80572755
问题参考文档——https://www.linuxidc.com/Linux/2014-11/109931.htm
问题参考文档——https://www.cnblogs.com/xiaochina/p/7510239.html
问题参考文档——https://blog.csdn.net/qq_34169240/article/details/82014476
问题参考文档——https://blog.csdn.net/junzixing1985/article/details/79521655
问题参考文档——https://blog.csdn.net/tototuzuoquan/article/details/52780949