- centos7静默安装oracle11gR2
- 进行安装
- ctrl+c退出
- 跟踪安装进度
- 静等两三分钟,会跳出下列内容,表示安装成功
- !/bin/sh
- 要运行的 Root 脚本
- 切换到root用户执行脚本
- 切换到oracle用户
- 打开database
- 安装应答
- 查看监听状态,监听安装完默认是启动的
- 如果监听没有启动,可以通过下列命令启动
- 编辑dbca.rsp文件
- 进入编辑模式之后,shif+;/:键,输入set nu 命令是文件显示行数
- 开始安装,输入的SYS,SYSTEM口令自己定义,是SYS,SYSTEM用户的登陆密码,之后登陆该用户需要用到
- 安装完成后一般自动启动数据库,如果没有输入下列命令启动数据库
- 打开文件夹
- 修改listener.ora,这是修改前的
- listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora
- Generated by Oracle configuration tools.
- 修改后的,192.168.211.42是我虚拟机的ip
- listener.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/listener.ora
- Generated by Oracle configuration tools.
- 修改tnsnames.ora,这是修改前的
- tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
- Generated by Oracle configuration tools.
- 修改后的
- tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
- Generated by Oracle configuration tools.
- 关闭监听服务,有时候关闭不了,提示没有权限操作监听服务,解决方法下一个问题
- 开启监听服务
- 登入
- 立即关闭数据库服务
- 开启数据库服务
- 注册
- username 换成没有权限的用户
- $ORACLE_HOME/bin/dbshut是一样的,这里不重复了
- /u01/oracle/product/11.2.0/db_1/这个是自己安装路径,只需要将N改为Y
- 将下面两句加入到rc.local文件中,路径换成自己的;oracle用户下如果没有权限可以切换到root用户
- !/bin/sh
centos7静默安装oracle11gR2
文章目录
-
- [一、检查硬件要求](https://blog.csdn.net/qq_24058757/article/details/88170905#_2)
- [二、环境准备](https://blog.csdn.net/qq_24058757/article/details/88170905#_23)
- [三、开始安装](https://blog.csdn.net/qq_24058757/article/details/88170905#_104)
- [四、安装及连接遇到的问题解决](https://blog.csdn.net/qq_24058757/article/details/88170905#_403)
- [五、设置数据库自启动](https://blog.csdn.net/qq_24058757/article/details/88170905#_589)
- [六、数据库字符集修改](https://blog.csdn.net/qq_24058757/article/details/88170905#_767)
一、检查硬件要求
内存要求:
要求:内存最小1G,推荐2G或者更高。
#查看命令,下列是我的内存
[root@oradb ~]# grep MemTotal /proc/meminfo
MemTotal: 1874276 kB
• 1
• 2
• 3
PS:还有其他硬件要求可以直接去官网(传送门)查看,这里不再叙述。
- 安装包:
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
PS:官方下载地址:传送门;
二、环境准备
安装必要的工具
#wget:下载工具;zip:打包工具;unzip:解压工具
[root@node1 ~]# yum -y install wget zip unzip
• 1
• 2
PS:如果已经有了就不需重复安装
关闭防火墙
#查看防火墙状态
[root@node1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2019-03-04 14:31:15 CST; 4min 32s ago
Docs: man:firewalld(1)
Main PID: 693 (firewalld)
CGroup: /system.slice/firewalld.service
└─693 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
3月 04 14:31:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
3月 04 14:31:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
#关闭防火墙
[root@node1 ~]# systemctl stop firewalld
#禁用防火墙
[root@node1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
#确认防火墙状态
[root@node1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
3月 04 14:31:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
3月 04 14:31:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
3月 04 14:36:34 node1.micserver systemd[1]: Stopping firewalld - dynamic firewall daemon...
3月 04 14:36:35 node1.micserver systemd[1]: Stopped firewalld - dynamic firewall daemon.
• 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
PS:不关闭防火墙,远程连接会提示连接超时,也可以通过开放对应端口
关闭Selinux
[root@node1 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@node1 ~]# setenforce 0
#查看Selinux状态
[root@node1 ~]# /usr/sbin/sestatus -v
• 1
• 2
• 3
• 4
安装Oracle依赖包
#通过安装Oracle YUM 源来安装所依赖的包
[root@node1 ~]# cd /etc/yum.repos.d
[root@node1 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-ol7.repo
#导入RPM-GPG-KEY-oracle
[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
#安装oracle-rdbms-server-11gR2-preinstall快速配置Oracle安装环境
[root@node1 yum.repos.d]# yum install oracle-rdbms-server-11gR2-preinstall -y
#安装完后查看后台日志内容
[root@node1 yum.repos.d]# more /var/log/oracle-rdbms-server-11gR2-preinstall/results/orakernel.log
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
PS:#oracle-rdbms-server-11gR2-preinstall包所干的事情
(1)自动安装oracle所需的RPM包
(2)自动创建oracle用户和group组
(3)自动配置/etc/sysctl.conf内核参数
(4)自动配置/etc/security/limits.conf参数三、开始安装
创建安装目录
#创建安装的目录
[root@node1 ~]# mkdir -p /u01/oracle/product/11.2.0/db_1
#更改oracle目录的属主
[root@node1 ~]# chown oracle:oinstall -R /u01
#更改oracle目录的权限
[root@node1 ~]# chmod 755 -R /u01/oracle
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
配置oracle用户环境变量
#切换到oracle用户环境
[root@node1 ~]# su - oracle
#编辑bash_profile文件,追加下列内容
[oracle@node1 ~]$ vi .bash_profile
export TMP=/tmp #安装oracle软件过程中使用的临时文件目录
export TMPDIR=$TMP #安装oracle软件过程中使用的临时文件目录
export ORACLE_BASE=/u01/oracle #Oracle的BASE目录,所有关于Oracle的文件全部存放在这个目录中
export ORACLE_HOME=/u01/oracle/product/11.2.0/db_1 #安装Oracle软件存放的目录
export ORACLE_SID=orcl #将要创建的数据库实例的名字
export ORACLE_TERM=xterm #安装的时候指定终端的定义资源文件xterm表示窗口方式,rt100表示终端调试模式
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH #SHELL可执行文件的搜索路径
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #库文件的搜索路径
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib #java的class文件执行搜索的bin路径
export EDITOR=vim #在oracle操作环境下嵌入使用的文本编辑工具
export NLS_LANG=AMERICAN_AMERICA.UTF8 #oracle用户这个客户端所识别的字符集
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' #oracle用户这个客户端所识别的时间显式格式
#使环境变量生效
[oracle@node1 ~]$ source .bash_profile
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 18
• 19
• 20
• 21
解压oracle安装包
#将安装包上传到u01文件夹下,可以通过FTP,rz命令等等上传到linux,这里不叙述了
[oracle@node1 ~]$ cd /u01
[oracle@node1 u01]$ ls
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip oracle
#解压安装包
[oracle@node1 u01]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@node1 u01]$ unzip linux.x64_11gR2_database_2of2.zip
#多了database文件夹
[oracle@node1 u01]$ ls
database linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip oracle
[oracle@node1 u01]$ ls -lrt
总用量 2295592
drwxr-xr-x. 8 oracle oinstall 128 8月 21 2009 database
-rw-r--r--. 1 root root 1111416131 3月 1 11:34 linux.x64_11gR2_database_2of2.zip
-rw-r--r--. 1 root root 1239269270 3月 1 11:35 linux.x64_11gR2_database_1of2.zip
drwxr-xr-x. 3 oracle oinstall 21 3月 4 14:56 oracle
#Oracle静默安装需要用到的应答文件
[oracle@node1 response]$ cd /u01/database/response
[oracle@node1 response]$ ll
总用量 76
-rw-rw-r--. 1 oracle oinstall 44969 2月 14 2009 dbca.rsp#创建数据库应答
-rw-rw-r--. 1 oracle oinstall 22557 8月 15 2009 db_install.rsp#安装应答
-rwxrwxr-x. 1 oracle oinstall 5740 2月 26 2009 netca.rsp#建立监听、本地服务名等网络设置的应答
• 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 response]$ vi db_install.rsp
#可以通过改命令查看文件内容,下列是修改后的内容值
[oracle@node1 response]$ cat db_install.rsp | grep -v "#"|grep -v "^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oradb#(不知道的可以通过hostname命令查询)
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
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
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ora11g
oracle.install.db.config.starterdb.SID=ORCL
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
• 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
安装数据库软件 ```
进行安装
[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. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
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
- **安装监听**
切换到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
- **静默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
到此数据库全部安装完成,以上是按照别人博客安装的,但是window还无法连接改数据库,下列问题列出遇到的问题以及解决
<a name="7cCHs"></a>
### 四、安装及连接遇到的问题解决
- **ORA-12170:TNS:连接超时**
查看linux系统的防火墙是否关闭,或者数据库端口是否开放 • 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
PS:一步都不要少,其实对于修改的这两个文件内容,我猜在配置应答文件的时候配错了,应该直接将我们修改的这些在配置应答文件就配置到对应的地方,不过没有实验,我也是按照别人的博文一步一步来,怕出错不知道怎么修改,到此本地window可以连接数据库了。
- **TNS-01190: The user is not authorized to execute the requested listener command**
在执行lsnrctl stop 命令时,提示没有权限操作监听服务,原因时当前用户不是启动监听的用户,切换到启动监听服务的用户下执行lsnrctl stop 命令就可以了,因为启动监听服务的用户拥有所有权,其他用户不能操作
- **执行lsnrctl stop或者lsnrctl stop,提示lsnrctl: 未找到命令**
切换到oracle用户的时候执行的是 su oracle,正确的是su - oracle
- **ORA-01031: insufficient privileges**
执行sqlplus / as sysdba命令时提示该错误,可以先先切换到别的用户环境下,再切换回来试试。
- **本地window连接没有问题,但是其他人无法连接**
检查以下是否能ping通,网络用桥接模式,不然别人ping不通,我用的是NAT模式,导致只能本地连接,别人连接不了我虚拟机的数据库。这种模式下如何ping通我没有查。
- **ora-01950:对表空间XXX无权限**
在创建表的时候,插入数据提示无权限
username 换成没有权限的用户
grant resource to username • 1 • 2
<a name="GO7rA"></a>
### 五、设置数据库自启动
方法一:
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
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
3. 把lsnrctl start和dbstart添加到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
4. 添加执行权限
[oracle@node1 ~]$ su root [root@node1 ~]# chmod +x /etc/rc.d/rc.local • 1 • 2 • 3
5. 重启系统,然后查看一下是否自启动成功。
方法二:(没有操作过,从参考文档摘过来的)
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
2、新建Oracle服务自启动脚本
[oracle@node1 ~]# vi /etc/init.d/oracle • 1
将以下脚本复制到文件中,保存退出
!/bin/sh
# chkconfig: 2345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/usr/oracle #oracle安装位置
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #Oracle安装路径
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
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
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
4、添加执行权限并建立链接<br />更改oracle脚本的执行权限
[root@localhost oracle]# chmod a+x /etc/init.d/oracle • 1
建立链接<br />将启动脚本添加到系统服务并设置自启动
[root@localhost oracle]# chkconfig —add oracle • 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
说明:设置oracle脚本在运行级别为2、3、4、5时,都是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
```
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
• 1
• 2
• 3
• 4
• 5
• 6
• 7
手动创建符号链接文件(执行效果和执行chkconfig —add oracle是一样,作为知识笔记记录,可以不执行)
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
• 1
• 2
• 3
• 4
• 5
• 6
• 7
5、oracle的启动或关闭管理
启动
[root@localhost oracle]# service oracle start
停止
[root@localhost oracle]# service oracle stop
重启
[root@localhost oracle]# service oracle restart
• 1
• 2
• 3
• 4
• 5
• 6
六、数据库字符集修改
PS:没有操作过,从参考文档摘过来的
注意事项:修改字符集前先将数据库进行备份
此处演示将ZHS16GBK字符集修改为AL32UTF8
1、修改server端字符集
登录sqlpus查看字符集设置
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 24 13:55:51 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance. #数据库未启动,先启动数据库。最好将数据库设未开机启动
SQL> startup
SQL> conn /as sysdba
Connected. #连接成功
SQL> select userenv('language') from dual; #server端字符集查询
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
依次执行如下命令
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
SQL>
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
2、修改client端字符集
查看系统环境变量设置的字符集(client端字符集)
[oracle@localhost ~]$ cat /home/oracle/.bash_profile
...
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #客户端字符集
进入编辑界面,将ZHS16GBK改为AL32UTF8,保存退出
[oracle@localhost ~]$ vim /home/oracle/.bash_profile
使配置生效
[oracle@localhost ~]$ source /home/oracle/.bash_profile
• 1
• 2
• 3
• 4
• 5
• 6
• 7
• 8
• 9
• 10
• 11
• 12
• 13
• 14
• 15
• 16
• 17
• 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
- 关注
- 一键三连
CentOS 7上安装Oracle 11gR2 全程详细图解教程
08-09
CentOS 7上安装Oracle 11gR2 全程详细图解教程PDF
baidu_28726667:配置这个环境变量:export ORACLE_SID=orcl #将要创建的数据库实例的名字, 然后startup的时候会找 /xxxxxx/product/11.2/db_1/dbs/initorcl.ora. 而安装后生成的文件名字是 init.ora. 强行改名字后startup 还有后续其它错误5 月前回复
qq_40194840:按您这个教程真的安装成功了???10 月前回复
qq_40194840回复M_默语:好的,我的微信BHDNHSX10 月前回复回复:我加你微信或者qq吧,这里的信息我没法及时看10 月前回复
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 月前回复回复:成没成您不应该清楚吗/(ㄒoㄒ)/~~,还是您出现什么问题?10 月前回复