Linux无界面创建Oracle数据库实例

Linux创建Oracle数据库实例

上一篇安装了数据库,本文记录创建数据库实例步骤

1、安装步骤:

  • 内存检查

内存检查,如果过小,则会报错,具体错误可以看最后的问题列表,我初始内存为2G,出错之后调成16G,具体的值我没有查验,小伙伴们可以自己查查资料,下边的内存数是公司服务器内存,不是我本机。

[root@node1 ~]# grep -i memtotal /proc/meminfo
MemTotal:       263773908 kB
  • 创建的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
  • 创建相应目录
#将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]$ 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'
  • 创建密码文件
#将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.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
;
  • 执行建库和数据字典脚本
#检查当前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;#执行需要点时间
  • 修改监听配置文件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))
  • 启动监听
#这里要指明启动哪个数据库实例的监听
[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_install
2.用户名:system       密码:manager
3.用户名: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;

[参考]
安装文档——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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值