Linux创建Oracle数据库实例

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

1、安装步骤:

  • 内存检查

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

  1. [root@node1 ~]# grep -i memtotal /proc/meminfo
  2. MemTotal: 263773908 kB
  3. 1
  4. 2
  • 创建的ORACLE的SID

PS:以下操作都在oracle用户环境

  1. #切换到oracle用户环境
  2. [root@node1 ~]# su - oracle
  3. Last login: Tue Mar 5 14:05:55 CST 2019 on pts/0
  4. #本次创建的ORACLE的SID为rmblc
  5. [oracle@node1 ~]$ export ORACLE_SID=rmblc
  6. #打印当前ORACLE的SID
  7. [oracle@node1 ~]$ echo $ORACLE_SID
  8. rmblc
  9. 1
  10. 2
  11. 3
  12. 4
  13. 5
  14. 6
  15. 7
  16. 8
  17. 9
  18. 10
  • 创建相应目录

    1. #将rmblc换成自己的SID
    2. [oracle@node1 ~]$ mkdir -p $ORACLE_BASE/admin/rmblc/{a,b,c,u}dump
    3. [oracle@node1 ~]$ mkdir -p $ORACLE_BASE/admin/rmblc/pfile
    4. [oracle@node1 ~]$ mkdir -p $ORACLE_BASE/oradata/rmblc
    5. 1
    6. 2
    7. 3
    8. 4
  • 创建初始化文件

    1. #打开$ORACLE_HOME/dbs目录
    2. [oracle@node1 ~]$ cd $ORACLE_HOME/dbs
    3. [oracle@node1 dbs]$ ls
    4. hc_orcl.dat init.ora lkORCL orapworcl spfileorcl.ora
    5. #复制初始化文件,明明规则init+实例名.ora
    6. [oracle@node1 dbs]$ cp init.ora initrmblc.ora
    7. [oracle@node1 dbs]$ ls
    8. hc_orcl.dat init.ora initrmblc.ora lkORCL orapworcl spfileorcl.ora
    9. #编辑,将<ORACLE_BASE>换成对应的绝对路径,不知道的可以通过echo $ORACLE_BASE命令查看
    10. [oracle@node1 dbs]$ vi initrmblc.ora
    11. db_name='rmblc'#换成自己的SID
    12. memory_target=1G
    13. processes = 150
    14. audit_file_dest='/u01/oracle/admin/rmblc/adump'#替换成自己的
    15. audit_trail ='db'
    16. db_block_size=8192
    17. db_domain=''
    18. db_recovery_file_dest='/u01/oracle/flash_recovery_area'#替换成自己的
    19. db_recovery_file_dest_size=2G
    20. diagnostic_dest='/u01/oracle'#替换成自己的
    21. dispatchers='(PROTOCOL=TCP) (SERVICE=rmblcXDB)'#rmblc将替换成自己的SID
    22. open_cursors=300
    23. remote_login_passwordfile='EXCLUSIVE'
    24. undo_tablespace='UNDOTBS1'
    25. # You may want to ensure that control files are created on separate physical
    26. # devices
    27. control_files = (ora_control3, ora_control4)#原文件是12改成不一样的不然会报错
    28. compatible ='11.2.0'
  • 创建密码文件

    1. #将orapwrmblc的rmblc改成自己的SID,admin是密码
    2. [oracle@node1 dbs]$ orapwd file=$ORACLE_HOME/dbs/orapwrmblc password=admin entries=5 force=y
    3. 1
    4. 2

    PS:参考的博文说这里设置的是sys用户,密码是addb123,但是登陆提示错误,用原始密码可以登陆,不清楚设置的是什么密码,有知道小伙伴麻烦在下面告诉我一下

  • 创建oracle的建库脚本 createdb.sql

    1. #打开路径,
    2. [oracle@node1 dbs]$ cd $ORACLE_BASE/oradata/rmblc
    3. #创建文件
    4. [oracle@node1 rmblc]$ vi createdb.sql
    5. create database rmblc #替换成自己的SID
    6. MAXINSTANCES 1
    7. MAXLOGHISTORY 1
    8. MAXLOGFILES 5
    9. MAXLOGMEMBERS 5
    10. MAXDATAFILES 100
    11. DATAFILE
    12. '/u01/oracle/oradata/rmblc/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local #替换成自己的路径
    13. sysaux datafile
    14. '/u01/oracle/oradata/rmblc/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited #替换成自己的路径
    15. default temporary tablespace TEMP tempfile
    16. '/u01/oracle/oradata/rmblc/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited #替换成自己的路径
    17. undo tablespace UNDOTBS1 datafile
    18. '/u01/oracle/oradata/rmblc/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited #替换成自己的路径
    19. logfile
    20. GROUP 1 ('/u01/oracle/oradata/rmblc/redo1.dbf') size 10m, #替换成自己的路径
    21. GROUP 2 ('/u01/oracle/oradata/rmblc/redo2.dbf') size 10m, #替换成自己的路径
    22. GROUP 3 ('/u01/oracle/oradata/rmblc/redo3.dbf') size 10m #替换成自己的路径
    23. CHARACTER SET ZHS16GBK
    24. NATIONAL CHARACTER SET AL16UTF16
    25. ;
  • 执行建库和数据字典脚本

    1. #检查当前SID是否为自己创建的
    2. [oracle@node1 rmblc]$ echo $ORACLE_SID
    3. rmblc
    4. #连接数据库
    5. [oracle@node1 rmblc]$ sqlplus / as sysdba
    6. #执行这一句可能会提示错误,具体看问题列表
    7. SQL> startup nomount
    8. SQL> @$ORACLE_BASE/oradata/rmblc/createdb.sql#执行需要点时间
    9. SQL> @?/rdbms/admin/catalog.sql;#执行需要点时间
    10. SQL> @?/rdbms/admin/catproc.sql;#执行需要点时间
    11. 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 =

    1. (ADDRESS_LIST =
    2. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    3. )
    4. (ADDRESS_LIST =
    5. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.214.16)(PORT = 1522))
    6. )

    ) ) SID_LIST_rmblc = (SID_LIST = (SID_DESC =

    1. (GLOBAL_DBNAME = rmblc)
    2. (ORACLE_HOME = /u01/oracle/product/11.2.0/db_1)
    3. (SID_NAME = rmblc)

    ) ) LISTENER_FATPASE = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.214.16)(PORT = 1522))

  1. - 启动监听

这里要指明启动哪个数据库实例的监听

[oracle@node1 admin]$ lsnrctl start rmblc • 1 • 2

  1. - 启动数据库服务

查看以下自己当前的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. - 数据库原始密码

1.用户名:sys 密码:change_on_install 2.用户名:system 密码:manager 3.用户名:scott 密码:tiger • 1 • 2 • 3

  1. - 修改密码,已经连接数据库

修改密码,因为前面说设置了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

alter database datafile ‘/u01/app/oracle/oradata/crm/CRM_IDX13.dbf’ resize 3G;