centos7静默安装oracle11gR2

文章目录

  • centos7静默安装oracle11gR2

    1. - [一、检查硬件要求](https://blog.csdn.net/qq_24058757/article/details/88170905#_2)
    2. - [二、环境准备](https://blog.csdn.net/qq_24058757/article/details/88170905#_23)
    3. - [三、开始安装](https://blog.csdn.net/qq_24058757/article/details/88170905#_104)
    4. - [四、安装及连接遇到的问题解决](https://blog.csdn.net/qq_24058757/article/details/88170905#_403)
    5. - [五、设置数据库自启动](https://blog.csdn.net/qq_24058757/article/details/88170905#_589)
    6. - [六、数据库字符集修改](https://blog.csdn.net/qq_24058757/article/details/88170905#_767)

    一、检查硬件要求

  • 内存要求:

要求:内存最小1G,推荐2G或者更高。

  1. #查看命令,下列是我的内存
  2. [root@oradb ~]# grep MemTotal /proc/meminfo
  3. MemTotal: 1874276 kB
  4. 1
  5. 2
  6. 3

PS:还有其他硬件要求可以直接去官网(传送门)查看,这里不再叙述。

  • 安装包:
    • linux.x64_11gR2_database_1of2.zip
    • linux.x64_11gR2_database_2of2.zip
  • PS:官方下载地址:传送门

    二、环境准备

  • 安装必要的工具

    1. #wget:下载工具;zip:打包工具;unzip:解压工具
    2. [root@node1 ~]# yum -y install wget zip unzip
    3. 1
    4. 2

    PS:如果已经有了就不需重复安装

  • 关闭防火墙

    1. #查看防火墙状态
    2. [root@node1 ~]# systemctl status firewalld
    3. firewalld.service - firewalld - dynamic firewall daemon
    4. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
    5. Active: active (running) since 2019-03-04 14:31:15 CST; 4min 32s ago
    6. Docs: man:firewalld(1)
    7. Main PID: 693 (firewalld)
    8. CGroup: /system.slice/firewalld.service
    9. └─693 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    10. 3 04 14:31:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
    11. 3 04 14:31:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
    12. #关闭防火墙
    13. [root@node1 ~]# systemctl stop firewalld
    14. #禁用防火墙
    15. [root@node1 ~]# systemctl disable firewalld
    16. Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    17. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    18. #确认防火墙状态
    19. [root@node1 ~]# systemctl status firewalld
    20. firewalld.service - firewalld - dynamic firewall daemon
    21. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
    22. Active: inactive (dead)
    23. Docs: man:firewalld(1)
    24. 3 04 14:31:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
    25. 3 04 14:31:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
    26. 3 04 14:36:34 node1.micserver systemd[1]: Stopping firewalld - dynamic firewall daemon...
    27. 3 04 14:36:35 node1.micserver systemd[1]: Stopped firewalld - dynamic firewall daemon.
    28. 1
    29. 2
    30. 3
    31. 4
    32. 5
    33. 6
    34. 7
    35. 8
    36. 9
    37. 10
    38. 11
    39. 12
    40. 13
    41. 14
    42. 15
    43. 16
    44. 17
    45. 18
    46. 19
    47. 20
    48. 21
    49. 22
    50. 23
    51. 24
    52. 25
    53. 26
    54. 27
    55. 28
    56. 29
    57. 30
    58. 31
    59. 32

    PS:不关闭防火墙,远程连接会提示连接超时,也可以通过开放对应端口

  • 关闭Selinux

    1. [root@node1 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
    2. [root@node1 ~]# setenforce 0
    3. #查看Selinux状态
    4. [root@node1 ~]# /usr/sbin/sestatus -v
    5. 1
    6. 2
    7. 3
    8. 4
  • 安装Oracle依赖包

    1. #通过安装Oracle YUM 源来安装所依赖的包
    2. [root@node1 ~]# cd /etc/yum.repos.d
    3. [root@node1 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-ol7.repo
    4. #导入RPM-GPG-KEY-oracle
    5. [root@node1 yum.repos.d]# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    6. #安装oracle-rdbms-server-11gR2-preinstall快速配置Oracle安装环境
    7. [root@node1 yum.repos.d]# yum install oracle-rdbms-server-11gR2-preinstall -y
    8. #安装完后查看后台日志内容
    9. [root@node1 yum.repos.d]# more /var/log/oracle-rdbms-server-11gR2-preinstall/results/orakernel.log
    10. 1
    11. 2
    12. 3
    13. 4
    14. 5
    15. 6
    16. 7
    17. 8
    18. 9
    19. 10
    20. 11
    21. 12

    PS:#oracle-rdbms-server-11gR2-preinstall包所干的事情
    (1)自动安装oracle所需的RPM包
    (2)自动创建oracle用户和group组
    (3)自动配置/etc/sysctl.conf内核参数
    (4)自动配置/etc/security/limits.conf参数

    三、开始安装

  • 创建安装目录

    1. #创建安装的目录
    2. [root@node1 ~]# mkdir -p /u01/oracle/product/11.2.0/db_1
    3. #更改oracle目录的属主
    4. [root@node1 ~]# chown oracle:oinstall -R /u01
    5. #更改oracle目录的权限
    6. [root@node1 ~]# chmod 755 -R /u01/oracle
    7. 1
    8. 2
    9. 3
    10. 4
    11. 5
    12. 6
    13. 7
    14. 8
  • 配置oracle用户环境变量

    1. #切换到oracle用户环境
    2. [root@node1 ~]# su - oracle
    3. #编辑bash_profile文件,追加下列内容
    4. [oracle@node1 ~]$ vi .bash_profile
    5. export TMP=/tmp #安装oracle软件过程中使用的临时文件目录
    6. export TMPDIR=$TMP #安装oracle软件过程中使用的临时文件目录
    7. export ORACLE_BASE=/u01/oracle #Oracle的BASE目录,所有关于Oracle的文件全部存放在这个目录中
    8. export ORACLE_HOME=/u01/oracle/product/11.2.0/db_1 #安装Oracle软件存放的目录
    9. export ORACLE_SID=orcl #将要创建的数据库实例的名字
    10. export ORACLE_TERM=xterm #安装的时候指定终端的定义资源文件xterm表示窗口方式,rt100表示终端调试模式
    11. export PATH=/usr/sbin:$PATH
    12. export PATH=$ORACLE_HOME/bin:$PATH #SHELL可执行文件的搜索路径
    13. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #库文件的搜索路径
    14. export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib #java的class文件执行搜索的bin路径
    15. export EDITOR=vim #在oracle操作环境下嵌入使用的文本编辑工具
    16. export NLS_LANG=AMERICAN_AMERICA.UTF8 #oracle用户这个客户端所识别的字符集
    17. export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' #oracle用户这个客户端所识别的时间显式格式
    18. #使环境变量生效
    19. [oracle@node1 ~]$ source .bash_profile
    20. 1
    21. 2
    22. 3
    23. 4
    24. 5
    25. 6
    26. 7
    27. 8
    28. 9
    29. 10
    30. 11
    31. 12
    32. 13
    33. 14
    34. 15
    35. 16
    36. 17
    37. 18
    38. 19
    39. 20
    40. 21
  • 解压oracle安装包

    1. #将安装包上传到u01文件夹下,可以通过FTP,rz命令等等上传到linux,这里不叙述了
    2. [oracle@node1 ~]$ cd /u01
    3. [oracle@node1 u01]$ ls
    4. linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip oracle
    5. #解压安装包
    6. [oracle@node1 u01]$ unzip linux.x64_11gR2_database_1of2.zip
    7. [oracle@node1 u01]$ unzip linux.x64_11gR2_database_2of2.zip
    8. #多了database文件夹
    9. [oracle@node1 u01]$ ls
    10. database linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip oracle
    11. [oracle@node1 u01]$ ls -lrt
    12. 总用量 2295592
    13. drwxr-xr-x. 8 oracle oinstall 128 8 21 2009 database
    14. -rw-r--r--. 1 root root 1111416131 3 1 11:34 linux.x64_11gR2_database_2of2.zip
    15. -rw-r--r--. 1 root root 1239269270 3 1 11:35 linux.x64_11gR2_database_1of2.zip
    16. drwxr-xr-x. 3 oracle oinstall 21 3 4 14:56 oracle
    17. #Oracle静默安装需要用到的应答文件
    18. [oracle@node1 response]$ cd /u01/database/response
    19. [oracle@node1 response]$ ll
    20. 总用量 76
    21. -rw-rw-r--. 1 oracle oinstall 44969 2 14 2009 dbca.rsp#创建数据库应答
    22. -rw-rw-r--. 1 oracle oinstall 22557 8 15 2009 db_install.rsp#安装应答
    23. -rwxrwxr-x. 1 oracle oinstall 5740 2 26 2009 netca.rsp#建立监听、本地服务名等网络设置的应答
    24. 1
    25. 2
    26. 3
    27. 4
    28. 5
    29. 6
    30. 7
    31. 8
    32. 9
    33. 10
    34. 11
    35. 12
    36. 13
    37. 14
    38. 15
    39. 16
    40. 17
    41. 18
    42. 19
    43. 20
    44. 21
    45. 22
    46. 23
    47. 24
    48. 25
    49. 26
    50. 27
  • 配置应答文件

    1. #修改安装应答
    2. [oracle@node1 response]$ vi db_install.rsp
    3. #可以通过改命令查看文件内容,下列是修改后的内容值
    4. [oracle@node1 response]$ cat db_install.rsp | grep -v "#"|grep -v "^$"
    5. oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
    6. oracle.install.option=INSTALL_DB_SWONLY
    7. ORACLE_HOSTNAME=oradb#(不知道的可以通过hostname命令查询)
    8. UNIX_GROUP_NAME=oinstall
    9. INVENTORY_LOCATION=/u01/oracle/oraInventory
    10. SELECTED_LANGUAGES=en,zh_CN
    11. ORACLE_HOME=/u01/oracle/product/11.2.0/db_1
    12. ORACLE_BASE=/u01/oracle
    13. oracle.install.db.InstallEdition=EE
    14. oracle.install.db.isCustomInstall=false
    15. oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
    16. oracle.install.db.DBA_GROUP=dba
    17. oracle.install.db.OPER_GROUP=oinstall
    18. oracle.install.db.CLUSTER_NODES=
    19. oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
    20. oracle.install.db.config.starterdb.globalDBName=ora11g
    21. oracle.install.db.config.starterdb.SID=ORCL
    22. oracle.install.db.config.starterdb.characterSet=AL32UTF8
    23. oracle.install.db.config.starterdb.memoryOption=true
    24. oracle.install.db.config.starterdb.memoryLimit=512
    25. oracle.install.db.config.starterdb.installExampleSchemas=false
    26. oracle.install.db.config.starterdb.enableSecuritySettings=true
    27. oracle.install.db.config.starterdb.password.ALL=oracle
    28. oracle.install.db.config.starterdb.password.SYS=
    29. oracle.install.db.config.starterdb.password.SYSTEM=
    30. oracle.install.db.config.starterdb.password.SYSMAN=
    31. oracle.install.db.config.starterdb.password.DBSNMP=
    32. oracle.install.db.config.starterdb.control=DB_CONTROL
    33. oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
    34. oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
    35. oracle.install.db.config.starterdb.dbcontrol.emailAddress=
    36. oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
    37. oracle.install.db.config.starterdb.automatedBackup.enable=false
    38. oracle.install.db.config.starterdb.automatedBackup.osuid=
    39. oracle.install.db.config.starterdb.automatedBackup.ospwd=
    40. oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
    41. oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
    42. oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
    43. oracle.install.db.config.asm.diskGroup=
    44. oracle.install.db.config.asm.ASMSNMPPassword=
    45. MYORACLESUPPORT_USERNAME=
    46. MYORACLESUPPORT_PASSWORD=
    47. SECURITY_UPDATES_VIA_MYORACLESUPPORT=
    48. DECLINE_SECURITY_UPDATES=true
    49. PROXY_HOST=
    50. PROXY_PORT=
    51. PROXY_USER=
    52. PROXY_PWD=
    53. 1
    54. 2
    55. 3
    56. 4
    57. 5
    58. 6
    59. 7
    60. 8
    61. 9
    62. 10
    63. 11
    64. 12
    65. 13
    66. 14
    67. 15
    68. 16
    69. 17
    70. 18
    71. 19
    72. 20
    73. 21
    74. 22
    75. 23
    76. 24
    77. 25
    78. 26
    79. 27
    80. 28
    81. 29
    82. 30
    83. 31
    84. 32
    85. 33
    86. 34
    87. 35
    88. 36
    89. 37
    90. 38
    91. 39
    92. 40
    93. 41
    94. 42
    95. 43
    96. 44
    97. 45
    98. 46
    99. 47
    100. 48
    101. 49
    102. 50
    103. 51
    104. 52
    105. 53
  • 安装数据库软件 ```

    进行安装

    [oracle@node1 database]$ /u01/database/runInstaller -silent -force -ignorePrereq -responseFile /u01/database/response/db_install.rsp 正在启动 Oracle Universal Installer… 检查临时空间: 必须大于 120 MB。 实际为 11292 MB 通过 检查交换空间: 必须大于 150 MB。 实际为 2047 MB 通过 准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2019-03-04_03-38-54PM. 请稍候…[oracle@node1 database]$ [WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。 原因: 主产品清单位于 Oracle 基目录中。 操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。 [WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。 原因: 主产品清单位于 Oracle 基目录中。 操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。 可以在以下位置找到本次安装会话的日志: /u01/oracle/oraInventory/logs/installActions2019-03-04_03-38-54PM.log

ctrl+c退出

跟踪安装进度

[oracle@node1 database]$ cd /u01/oracle/oraInventory/logs/ [oracle@node1 logs]$ tail -f installActions*log …

静等两三分钟,会跳出下列内容,表示安装成功

[oracle@node1 database]$ 以下配置脚本需要以 “root” 用户的身份执行。

!/bin/sh

要运行的 Root 脚本

/u01/oracle/oraInventory/orainstRoot.sh /u01/oracle/product/11.2.0/db_1/root.sh 要执行配置脚本, 请执行以下操作:

  1. 1. 打开一个终端窗口
  2. 2. "root" 身份登录
  3. 3. 运行脚本
  4. 4. 返回此窗口并按 "Enter" 键继续

Successfully Setup Software.

切换到root用户执行脚本

[oracle@node1 database]$ su root 密码: [root@node1 database]# cd [root@node1 ~]# /u01/oracle/oraInventory/orainstRoot.sh 更改权限/u01/oracle/oraInventory. 添加组的读取和写入权限。 删除全局的读取, 写入和执行权限。 更改组名/u01/oracle/oraInventory 到 oinstall. 脚本的执行已完成。 [root@node1 ~]# /u01/oracle/product/11.2.0/db_1/root.sh Check /u01/oracle/product/11.2.0/db_1/install/root_node1.micserver_2019-03-04_15-45-29.log for the output of root script • 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 • 31 • 32 • 33 • 34 • 35 • 36 • 37 • 38 • 39 • 40 • 41 • 42 • 43 • 44 • 45 • 46 • 47 • 48 • 49 • 50

  1. - **安装监听**

切换到oracle用户

[root@node1 ~]# su - oracle

打开database

[oracle@node1 u01]$ cd /u01/database

安装应答

[oracle@node1 database]$ $ORACLE_HOME/bin/netca /silent /responseFile /u01/database/response/netca.rsp 正在对命令行参数进行语法分析: 参数”silent” = true 参数”responsefile” = /u01/database/response/netca.rsp 完成对命令行参数进行语法分析。 Oracle Net Services 配置: 完成概要文件配置。 Oracle Net 监听程序启动: 正在运行监听程序控制: /u01/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER 监听程序控制完成。 监听程序已成功启动。 监听程序配置完成。 成功完成 Oracle Net Services 配置。退出代码是0

查看监听状态,监听安装完默认是启动的

[oracle@node1 database]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-MAR-2019 15:49:31 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 04-MAR-2019 15:48:42 Uptime 0 days 0 hr. 0 min. 48 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /u01/oracle/diag/tnslsnr/node1/listener/alert/log.xml Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.micserver)(PORT=1521))) The listener supports no services The command completed successfully

如果监听没有启动,可以通过下列命令启动

[oracle@node1 database]$ lsnrctl start • 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 • 31 • 32 • 33 • 34 • 35 • 36 • 37 • 38 • 39 • 40 • 41 • 42 • 43 • 44 • 45 • 46 • 47 • 48 • 49

  1. - **静默dbca建立数据库**

编辑dbca.rsp文件

[oracle@node1 database]$ vi /u01/database/response/dbca.rsp

进入编辑模式之后,shif+;/:键,输入set nu 命令是文件显示行数

GDBNAME = “orcl.oradb” #78行,全局数据库名字 sid+hostname SID = “orcl” #149行 CHARACTERSET = “AL32UTF8” #415行,编码 NATIONALCHARACTERSET= “UTF8” #425行

开始安装,输入的SYS,SYSTEM口令自己定义,是SYS,SYSTEM用户的登陆密码,之后登陆该用户需要用到

[oracle@node1 database]$ $ORACLE_HOME/bin/dbca -silent -responseFile /u01/database/response/dbca.rsp 输入 SYS 用户口令:

输入 SYSTEM 用户口令: 复制数据库文件 1% 已完成 3% 已完成 11% 已完成 18% 已完成 26% 已完成 37% 已完成 正在创建并启动 Oracle 实例 40% 已完成 45% 已完成 50% 已完成 55% 已完成 56% 已完成 60% 已完成 62% 已完成 正在进行数据库创建 66% 已完成 70% 已完成 73% 已完成 85% 已完成 96% 已完成 100% 已完成 有关详细信息, 请参阅日志文件 “/u01/oracle/cfgtoollogs/dbca/orcl/orcl.log”。

安装完成后一般自动启动数据库,如果没有输入下列命令启动数据库

[oracle@node1 database]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 4 16:03:00 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> startup #启动数据库 SQL> quit #退出 • 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 • 31 • 32 • 33 • 34 • 35 • 36 • 37 • 38 • 39 • 40 • 41 • 42 • 43 • 44 • 45 • 46 • 47 • 48 • 49 • 50 • 51 • 52

  1. 到此数据库全部安装完成,以上是按照别人博客安装的,但是window还无法连接改数据库,下列问题列出遇到的问题以及解决
  2. <a name="7cCHs"></a>
  3. ### 四、安装及连接遇到的问题解决
  4. - **ORA-12170:TNS:连接超时**

查看linux系统的防火墙是否关闭,或者数据库端口是否开放 • 1

  1. - **ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务**

打开文件夹

[oracle@node1 database]$ cd /u01/oracle/product/11.2.0/db_1/network/admin [oracle@node1 admin]$ ls listener.ora samples shrept.lst sqlnet.ora tnsnames.ora

修改listener.ora,这是修改前的

[oracle@node1 admin]$ vi listener.ora

listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora

Generated by Oracle configuration tools.

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = node1.micserver)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/oracle

修改后的,192.168.211.42是我虚拟机的ip

[oracle@node1 admin]$ cat listener.ora

listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora

Generated by Oracle configuration tools.

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /u01/oracle/product/11.2.0/db_1) (SID_NAME = orcl) ) ) LISTENER =(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.42)(PORT = 1521))) ADR_BASE_LISTENER = /u01/oracle

修改tnsnames.ora,这是修改前的

[oracle@node1 admin]$ vi tnsnames.ora

tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

Generated by Oracle configuration tools.

ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = node1.micserver)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.node1.micserver) ) )

修改后的

[oracle@node1 admin]$ cat tnsnames.ora

tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

Generated by Oracle configuration tools.

orcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.211.42)(PORT = 1521)) ) (CONNECT_DATA = (SID = orcl) ) )

关闭监听服务,有时候关闭不了,提示没有权限操作监听服务,解决方法下一个问题

[oracle@node1 admin]$ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-MAR-2019 16:25:32 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.42)(PORT=1521))) The command completed successfully

开启监听服务

[oracle@node1 admin]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 04-MAR-2019 16:27:20 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /u01/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait… TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora Log messages written to /u01/oracle/diag/tnslsnr/node1/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.211.42)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.42)(PORT=1521)))

STATUS of the LISTENER

Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 04-MAR-2019 16:27:20 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /u01/oracle/diag/tnslsnr/node1/listener/alert/log.xml Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.211.42)(PORT=1521))) Services Summary… Service “orcl” has 1 instance(s). Instance “orcl”, status UNKNOWN, has 1 handler(s) for this service… The command completed successfully

登入

[oracle@node1 admin]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 4 16:27:54 2019 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

立即关闭数据库服务

SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down

开启数据库服务

SQL> startup ORACLE instance started. Total System Global Area 764121088 bytes Fixed Size 2217264 bytes Variable Size 452987600 bytes Database Buffers 301989888 bytes Redo Buffers 6926336 bytes Database mounted. Database opened.

注册

SQL> alter system register;
System altered.

• 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 • 31 • 32 • 33 • 34 • 35 • 36 • 37 • 38 • 39 • 40 • 41 • 42 • 43 • 44 • 45 • 46 • 47 • 48 • 49 • 50 • 51 • 52 • 53 • 54 • 55 • 56 • 57 • 58 • 59 • 60 • 61 • 62 • 63 • 64 • 65 • 66 • 67 • 68 • 69 • 70 • 71 • 72 • 73 • 74 • 75 • 76 • 77 • 78 • 79 • 80 • 81 • 82 • 83 • 84 • 85 • 86 • 87 • 88 • 89 • 90 • 91 • 92 • 93 • 94 • 95 • 96 • 97 • 98 • 99 • 100 • 101 • 102 • 103 • 104 • 105 • 106 • 107 • 108 • 109 • 110 • 111 • 112 • 113 • 114 • 115 • 116 • 117 • 118 • 119 • 120 • 121 • 122 • 123 • 124 • 125 • 126 • 127 • 128 • 129 • 130 • 131 • 132 • 133 • 134 • 135 • 136 • 137 • 138 • 139 • 140 • 141 • 142 • 143 • 144 • 145 • 146

  1. PS:一步都不要少,其实对于修改的这两个文件内容,我猜在配置应答文件的时候配错了,应该直接将我们修改的这些在配置应答文件就配置到对应的地方,不过没有实验,我也是按照别人的博文一步一步来,怕出错不知道怎么修改,到此本地window可以连接数据库了。
  2. - **TNS-01190: The user is not authorized to execute the requested listener command**
  3. 在执行lsnrctl stop 命令时,提示没有权限操作监听服务,原因时当前用户不是启动监听的用户,切换到启动监听服务的用户下执行lsnrctl stop 命令就可以了,因为启动监听服务的用户拥有所有权,其他用户不能操作
  4. - **执行lsnrctl stop或者lsnrctl stop,提示lsnrctl: 未找到命令**
  5. 切换到oracle用户的时候执行的是 su oracle,正确的是su - oracle
  6. - **ORA-01031: insufficient privileges**
  7. 执行sqlplus / as sysdba命令时提示该错误,可以先先切换到别的用户环境下,再切换回来试试。
  8. - **本地window连接没有问题,但是其他人无法连接**
  9. 检查以下是否能ping通,网络用桥接模式,不然别人ping不通,我用的是NAT模式,导致只能本地连接,别人连接不了我虚拟机的数据库。这种模式下如何ping通我没有查。
  10. - **ora-01950:对表空间XXX无权限**
  11. 在创建表的时候,插入数据提示无权限

username 换成没有权限的用户

grant resource to username • 1 • 2

  1. <a name="GO7rA"></a>
  2. ### 五、设置数据库自启动
  3. 方法一:
  4. 1. 修改dbstart、dbshut文件

$ORACLE_HOME/bin/dbshut是一样的,这里不重复了

[oracle@node1 ~]# vi $ORACLE_HOME/bin/dbstart ORACLE_HOME_LISTNER=$1 修改为: ORACLE_HOME_LISTNER=$ORACLE_HOME • 1 • 2 • 3 • 4 • 5

  1. 2. 修改/etc/oratab文件

/u01/oracle/product/11.2.0/db_1/这个是自己安装路径,只需要将N改为Y

[oracle@node1 ~]# vi /etc/oratab orcl:/u01/oracle/product/11.2.0/db_1/:N 修改为: orcl:/u01/oracle/product/11.2.0/db_1/:Y • 1 • 2 • 3 • 4 • 5

  1. 3. lsnrctl startdbstart添加到rc.local文件中

将下面两句加入到rc.local文件中,路径换成自己的;oracle用户下如果没有权限可以切换到root用户

[root@node1 ~]# vi /etc/rc.d/rc.local su - oracle -lc “/u01/oracle/product/11.2.0/db_1/bin/lsnrctl start” su - oracle -lc “/u01/oracle/product/11.2.0/db_1/bin/dbstart” • 1 • 2 • 3 • 4

  1. 4. 添加执行权限

[oracle@node1 ~]$ su root [root@node1 ~]# chmod +x /etc/rc.d/rc.local • 1 • 2 • 3

  1. 5. 重启系统,然后查看一下是否自启动成功。
  2. 方法二:(没有操作过,从参考文档摘过来的)
  3. 1. 修改/etc/oratab文件

[oracle@node1 ~]# vi /etc/oratab 找到: orcl:/u01/oracle/product/11.2.0/db_1:N
修改为: orcl:/u01/oracle/product/11.2.0/db_1:Y • 1 • 2 • 3

  1. 2、新建Oracle服务自启动脚本

[oracle@node1 ~]# vi /etc/init.d/oracle • 1

  1. 将以下脚本复制到文件中,保存退出

!/bin/sh

  1. # chkconfig: 2345 61 61
  2. # description: Oracle 11g R2 AutoRun Servimces
  3. # /etc/init.d/oracle
  4. #
  5. # Run-level Startup script for the Oracle Instance, Listener, and
  6. # Web Interface
  7. export ORACLE_BASE=/usr/oracle #oracle安装位置
  8. export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #Oracle安装路径
  9. export ORACLE_SID=orcl
  10. export PATH=$PATH:$ORACLE_HOME/bin
  11. ORA_OWNR="oracle"
  12. # if the executables do not exist -- display error
  13. if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
  14. then
  15. echo "Oracle startup: cannot start"
  16. exit 1
  17. fi
  18. # depending on parameter -- startup, shutdown, restart
  19. # of the instance and listener or usage display
  20. case "$1" in
  21. start)
  22. # Oracle listener and instance startup
  23. su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
  24. echo "Oracle Start Succesful!OK."
  25. ;;
  26. stop)
  27. # Oracle listener and instance shutdown
  28. su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
  29. echo "Oracle Stop Succesful!OK."
  30. ;;
  31. reload|restart)
  32. $0 stop
  33. $0 start
  34. ;;
  35. *)
  36. echo $"Usage: `basename $0` {start|stop|reload|reload}"
  37. exit 1
  38. esac
  39. exit 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 • 31 • 32 • 33 • 34 • 35 • 36 • 37 • 38 • 39 • 40

  1. 3、检查脚本能否执行

[root@localhost oracle]# /etc/init.d/oracle start #启动oracle脚本 [root@localhost oracle]# /etc/init.d/oracle stop #关闭oracle脚本 [root@localhost oracle]# /etc/init.d/oracle restart #重启oracle脚本 • 1 • 2 • 3

  1. 4、添加执行权限并建立链接<br />更改oracle脚本的执行权限

[root@localhost oracle]# chmod a+x /etc/init.d/oracle • 1

  1. 建立链接<br />将启动脚本添加到系统服务并设置自启动

[root@localhost oracle]# chkconfig —add oracle • 1

  1. 当这个命令被执行的时候,会去脚本文件oracle中寻找# chkconfig: 2345 61 61这行注释,并解析这行注释,根据解析结果分别在<br />/etc/rc.d/rc2.d<br />/etc/rc.d/rc3.d<br />/etc/rc.d/rc4.d<br />/etc/rc.d/rc5.d<br />中创建符号连接文件S61oracle,此文件在系统启动时根据运行级别执行,此文件是指向/etc/init.d/oracle文件。启动时系统向此文件发送一个start参数,执行oracle文件中的start分支。另外还会在<br />/etc/rc.d/rc0.d<br />/etc/rc.d/rc1.d<br />/etc/rc.d/rc6.d<br />中创建符号连接文件K61oracle,此文件在系统关闭时执行,此文件也指向/etc/init.d/oracle文件,关闭时系统向此文件发送一个stop参数,执行oracle文件中的stop分支。<br />**#** chkconfig: 2345 61 61<br />**#** 表明脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为61,停止优先权为 61。<br />修改服务运行等级(虽然脚本里写过,但还是重新设置一下),可以自行设置oracle脚本的运行级别

[root@localhost oracle]# chkconfig —level 2345 oracle on • 1

  1. 说明:设置oracle脚本在运行级别为2345时,都是on(开启)状态,off为关闭<br />查看oracle自动启动设置

[root@localhost oracle]# chkconfig –list oracle Oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off • 1 • 2

  1. ```
  2. 等级0表示:表示关机
  3. 等级1表示:单用户模式
  4. 等级2表示:无网络连接的多用户命令行模式
  5. 等级3表示:有网络连接的多用户命令行模式
  6. 等级4表示:不可用
  7. 等级5表示:带图形界面的多用户模式
  8. 等级6表示:重新启动
  9. • 1
  10. • 2
  11. • 3
  12. • 4
  13. • 5
  14. • 6
  15. • 7

手动创建符号链接文件(执行效果和执行chkconfig —add oracle是一样,作为知识笔记记录,可以不执行)

  1. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
  2. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
  3. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
  4. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
  5. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
  6. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
  7. [root@localhost oracle]# ln s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
  8. 1
  9. 2
  10. 3
  11. 4
  12. 5
  13. 6
  14. 7

5、oracle的启动或关闭管理

  1. 启动
  2. [root@localhost oracle]# service oracle start
  3. 停止
  4. [root@localhost oracle]# service oracle stop
  5. 重启
  6. [root@localhost oracle]# service oracle restart
  7. 1
  8. 2
  9. 3
  10. 4
  11. 5
  12. 6

六、数据库字符集修改

PS:没有操作过,从参考文档摘过来的
注意事项:修改字符集前先将数据库进行备份
此处演示将ZHS16GBK字符集修改为AL32UTF8
1、修改server端字符集
登录sqlpus查看字符集设置

  1. [oracle@localhost ~]$ sqlplus /nolog
  2. SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 24 13:55:51 2018
  3. Copyright (c) 1982, 2009, Oracle. All rights reserved.
  4. SQL> conn /as sysdba
  5. Connected to an idle instance. #数据库未启动,先启动数据库。最好将数据库设未开机启动
  6. SQL> startup
  7. SQL> conn /as sysdba
  8. Connected. #连接成功
  9. SQL> select userenv('language') from dual; #server端字符集查询
  10. USERENV('LANGUAGE')
  11. ----------------------------------------------------
  12. AMERICAN_AMERICA.ZHS16GBK
  13. 1
  14. 2
  15. 3
  16. 4
  17. 5
  18. 6
  19. 7
  20. 8
  21. 9
  22. 10
  23. 11
  24. 12
  25. 13
  26. 14

依次执行如下命令

  1. SQL>SHUTDOWN IMMEDIATE;
  2. SQL>STARTUP MOUNT;
  3. SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
  4. SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
  5. SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
  6. SQL>ALTER DATABASE OPEN;
  7. SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
  8. SQL>SHUTDOWN IMMEDIATE;
  9. SQL>STARTUP;
  10. SQL> select userenv('language') from dual;
  11. USERENV('LANGUAGE')
  12. ----------------------------------------------------
  13. AMERICAN_AMERICA.AL32UTF8
  14. SQL>
  15. 1
  16. 2
  17. 3
  18. 4
  19. 5
  20. 6
  21. 7
  22. 8
  23. 9
  24. 10
  25. 11
  26. 12
  27. 13
  28. 14
  29. 15

2、修改client端字符集
查看系统环境变量设置的字符集(client端字符集)

  1. [oracle@localhost ~]$ cat /home/oracle/.bash_profile
  2. ...
  3. PATH=$PATH:$HOME/.local/bin:$HOME/bin
  4. export PATH
  5. export ORACLE_BASE=/usr/oracle
  6. export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
  7. export ORACLE_SID=orcl
  8. export ORACLE_TERM=xterm
  9. export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
  10. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
  11. export LANG=C
  12. export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #客户端字符集
  13. 进入编辑界面,将ZHS16GBK改为AL32UTF8,保存退出
  14. [oracle@localhost ~]$ vim /home/oracle/.bash_profile
  15. 使配置生效
  16. [oracle@localhost ~]$ source /home/oracle/.bash_profile
  17. 1
  18. 2
  19. 3
  20. 4
  21. 5
  22. 6
  23. 7
  24. 8
  25. 9
  26. 10
  27. 11
  28. 12
  29. 13
  30. 14
  31. 15
  32. 16
  33. 17
  34. 18

[参考文档]
https://docs.oracle.com/cd/E11882_01/install.112/e47689/toc.htm(官网)
https://blog.csdn.net/lqdyx/article/details/78999761
https://www.cnblogs.com/nichoc/p/6417505.html
https://www.cnblogs.com/VoiceOfDreams/p/8308601.html

centos7静默安装oracle11gR2 - 图6
CentOS 7上安装Oracle 11gR2 全程详细图解教程
08-09

CentOS 7上安装Oracle 11gR2 全程详细图解教程PDF

centos7静默安装oracle11gR2 - 图7
centos7静默安装oracle11gR2 - 图8

  • centos7静默安装oracle11gR2 - 图9
    baidu_28726667:配置这个环境变量:export ORACLE_SID=orcl #将要创建的数据库实例的名字, 然后startup的时候会找 /xxxxxx/product/11.2/db_1/dbs/initorcl.ora. 而安装后生成的文件名字是 init.ora. 强行改名字后startup 还有后续其它错误5 月前回复centos7静默安装oracle11gR2 - 图10
    centos7静默安装oracle11gR2 - 图11
  • centos7静默安装oracle11gR2 - 图12
    qq_40194840:按您这个教程真的安装成功了???10 月前回复centos7静默安装oracle11gR2 - 图13
    centos7静默安装oracle11gR2 - 图14
    • centos7静默安装oracle11gR2 - 图15
      qq_40194840回复M_默语:好的,我的微信BHDNHSX10 月前回复centos7静默安装oracle11gR2 - 图16
      centos7静默安装oracle11gR2 - 图17
    • centos7静默安装oracle11gR2 - 图18
      centos7静默安装oracle11gR2 - 图19回复:我加你微信或者qq吧,这里的信息我没法及时看10 月前回复centos7静默安装oracle11gR2 - 图20
      centos7静默安装oracle11gR2 - 图21
    • centos7静默安装oracle11gR2 - 图22
      qq_40194840回复M_默语:我安装后没有/u01/oracle/oraInventory/orainstRoot.sh /u01/oracle/product/11.2.0/db_1/root.sh 没有orainstRoot.sh和root.sh 并且oraInventory和db_1目录下什么也没有,这事怎么回事?谢谢10 月前回复centos7静默安装oracle11gR2 - 图23
      centos7静默安装oracle11gR2 - 图24
    • centos7静默安装oracle11gR2 - 图25
      centos7静默安装oracle11gR2 - 图26回复:成没成您不应该清楚吗/(ㄒoㄒ)/~~,还是您出现什么问题?10 月前回复centos7静默安装oracle11gR2 - 图27
      centos7静默安装oracle11gR2 - 图28