
oracle 10g 更换主机名或者IP后引起EM (dbconsole) 启动失败的解决方法:
PS: 更换了主机名或者IP,如果只是单纯的pl/sql 连接数据库,可以不用重新配置EM,
只需要更改\oracle\product\10.2.0\db_1\network\ADMIN下的listener.ora和tnsnames.ora这两个文件,
把文件中:HOST=**** 改成对应的主键名或者IP即可。
如果需要要启动EM,以上的更改就不能达到我们的要求了,需要重新配置相关信息。
->set oracle_sid=ora10g
->emca -repos recreate
...........
输入以下信息:
数据库 SID: ora10g
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: yes
...........
->emca -config dbcontrol db
输入以下信息:
数据库 SID: ora10g
已为数据库 ora10g 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 ora10g
此 *** 作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]: yes
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ d:\oracle\product\10.2.0\db_1
数据库主机名 ................ MICROSOF-029
监听程序端口号 ................ 1521
数据库 SID ................ ora10g
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: yes
->emctl start dbconsole
.....................
如果看到 服务已经启动成功的字样,表示重新配置成功了。
EMCA 的命令参数
d:\oracle\product\10.2.0\db_1\bin\emca.bat [ *** 作] [模式] [数据库类型] [标记] [参数]
-h | --h | -help | --help: 打印此帮助消息
-version: 打印版本
-config dbcontrol db [-repos (create | recreate)] [-cluster] [-silent] [-backup][参数]: 配置数据库的 Database Control
-config centralAgent (db | asm) [-cluster] [-silent] [参数]: 配置中心代理管理
-config all db [-repos (create | recreate)] [-cluster] [-silent] [-backup] [参数]: 配置 Database Control 和中心代理管理
-deconfig dbcontrol db [-repos drop] [-cluster] [-silent] [参数]: 取消配置 Database Control
-deconfig centralAgent (db | asm) [-cluster] [ -silent] [参数]: 取消配置中心代理管理
-deconfig all db [-repos drop] [-cluster] [-silent] [参数]: 取消配置 Database Control 和中心代理管理
-addInst (db | asm) [-silent] [参数]: 为新的 RAC 实例配置 EM
-deleteInst (db | asm) [-silent] [参数]: 取消为指定的 RAC 实例配置 EM
-reconfig ports [-cluster] [参数]: 重新明确分配 Database Control 端口
-reconfig dbcontrol -cluster [-silent] [参数]: 重新配置 RAC Database Control 部署
-displayConfig dbcontrol -cluster [-silent] [参数]: 显示有关 RAC Database Control 配置的信息
-upgrade (db | asm | db_asm) [-cluster] [-silent] [参数]: 将较低版本的 EM 配置升级到当前版本
-restore (db | asm | db_asm) [-cluster] [-silent] [参数]: 将当前版本的 EM 配置复原到较低版本
参数和选项:
[参数]: [ -respFile 文件名 ] [ -paramName paramValue ]*
db: 对数据库 (包括使用 ASM 的数据库) 执行配置 *** 作
asm: 仅对 ASM 实例执行配置 *** 作
db_asm: 对数据库和 ASM 实例执行升级/复原 *** 作
-repos create: 创建新的 Database Control 资料档案库
-repos drop: 删除当前的 Database Control 资料档案库
-repos recreate: 删除当前的 Database Control 资料档案库并重新创建一个
-cluster: 对 RAC 数据库执行配置 *** 作
-silent: 在不提示参数的情况下执行配置 *** 作
-backup: 配置数据库的自动备份
单实例数据库的参数
HOST: 数据库主机名
SID: 数据库 SID
PORT: 监听程序端口号
ORACLE_HOME: 数据库 ORACLE_HOME
HOST_USER: 自动备份的主机用户名
HOST_USER_PWD: 自动备份的主机用户口令
BACKUP_SCHEDULE: 自动备份调度 (HH:MM)
EMAIL_ADDRESS: 通知的电子邮件地址
MAIL_SERVER_NAME: 通知的发件 (SMTP) 服务器
ASM_OH: ASM ORACLE_HOME
ASM_SID: ASM SID
ASM_PORT: ASM 端口
ASM_USER_ROLE: ASM 用户角色
ASM_USER_NAME: ASM 用户名
ASM_USER_PWD: ASM 用户口令
SRC_OH: 要升级的数据库的 ORACLE_HOME
DBSNMP_PWD: DBSNMP 用户的口令
SYSMAN_PWD: SYSMAN 用户的口令
SYS_PWD: SYS 用户的口令
DBCONTROL_HTTP_PORT: Database Control HTTP 端口
AGENT_PORT: EM 代理端口
RMI_PORT: Database Control 的 RMI 端口
JMS_PORT: Database Control 的 JMS 端口
集群数据库的其它参数
CLUSTER_NAME: 集群名
DB_UNIQUE_NAME: 数据库的唯一名称
SERVICE_NAME: 服务名
EM_NODE: Database Control 节点名
EM_SID_LIST: 代理 SID 列表 [以逗号分隔]
EMCA的一些常用命令
ps:先设置ORACLE_SID环境变量
emca -repos create 创建一个EM资料库
emca -repos recreate 重建一个EM资料库
emca -repos drop 删除一个EM资料库
emca -config dbcontrol db 配置数据库的Database Control
emca -deconfig dbcontrol db 删除数据库的 Database Control配置
emca -reconfig ports 重新配置db control的端口,默认端口在1158
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
emctl start dbconsole 启动EM console服务
emctl stop dbconsole 停止EM console服务
emctl status dbconsole 查看EM console服务的状态
配置dbconsole的步骤
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
正好刚整理了一个这方面的资料,先贴给你吧.准备ASM环境
ASM使用一个名叫“+ASM”的数据库实例来管理ASM磁盘,因此在配置ASM磁盘之前,需要先启动ASM实例。另外还需要注意,ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。ASM 实例的创建和删除可以用DBCA 工具来 *** 作。在DBCA的第一个界面选择配置自动存储管理就可以进入ASM配置的界面。
根据提示运行脚本就可以配置和启动CSS(Cluster Synchronization Service)了,注意要以root的身份运行这个脚本,运行情况如下:
# /u01/app/oracle/product/10.2.0/db_1/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized
Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
s1
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
ASM可以使用裸设备或者ASMLib方式, 因为裸设备的维护更罗嗦一些,本文只讨论ASMLib方式。为了在Linux系统中使用ASMLib方式准备ASM磁盘,需要安装相关的软件,下载链接如下:
http://www.oracle.com/technology/tech/linux/asmlib/index.html
下载时注意选择自己的 *** 作系统和内核的版本,我下载到的是以下三个软件:
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.4-1.el5.i386.rpm
这里特别需要注意第一个软件要和你的Linux内核的版本一致。(其实我的内核版本是2.6.18-155.el5,但是在官方网站找不到完全对应的版本,只好使用这个2.6.18-164.el5的版本了,后面会讲怎么解决这个问题。)接下来进行软件的安装,只需要使用rpm命令即可。
# rpm -ivh oracleasm*
现在安装oracleasm模块可能会报错,像我因为没有找到对应我的内核版本的oracleasm软件就遇到了这个问题。经过一番查找,发现软件将oracleasm的模块文件oracleasm.ko安装到了目录/lib/modules/2.6.18-164.el5/kernel/drivers/addon/oracleasm中,而我的默认的模块文件路径应该是/lib/modules/2.6.18-155.el5,因此决定手工建立相关的目录和文件。
# mkdir -p /lib/modules/2.6.18-155.el5/kernel/drivers/addon/oracleasm
# cp oracleasm.ko /lib/modules/2.6.18-155.el5/kernel/drivers/addon/oracleasm
然后再安装oracleasm的模块文件就可以通过了:
# depmod -a
# modprobe oracleasm
最后进行oracleasm服务的初始配置
# service oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER>without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
好了,现在已经有了初步的ASM配置环境,接下来就可以准备磁盘了。
添加ASM磁盘组
为了实现ASM的磁盘负载均衡和冗余能力,我准备使用四个磁盘建立ASM的磁盘组,因此需要为Linux系统添加四个磁盘。为了搭建这个环境,我使用的是VMware环境,因此添加磁盘就非常容易了。只需要在VMware的设置中选择添加硬件即可,而且现在的VMware版本是可以支持磁盘的热插拔的。无需关闭Linux系统,直接添加磁盘即可。添加完四个磁盘之后,为了让Linux系统马上识别这几个磁盘,可以运行如下命令:
# echo 'scsi add-single-device 0 0 1 0' >/proc/scsi/scsi
# echo 'scsi add-single-device 0 0 2 0' >/proc/scsi/scsi
# echo 'scsi add-single-device 0 0 3 0' >/proc/scsi/scsi
# echo 'scsi add-single-device 0 0 4 0' >/proc/scsi/scsi
运行fdisk -l命令可以看到系统中增加了/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四个磁盘。使用fdisk工具在这个四个磁盘上各建立一个分区(具体步骤略,不熟悉的可以查阅Linux的fdisk命令用法)。
然后运行oracleasm createdisk命令添加ASM磁盘:
# oracleasm createdisk VOL1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
依次添加/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四个磁盘分区,完成后检查如下:
# oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
这时运行DBCA工具的ASM配置向导就可以建立ASM磁盘组了。进入DBCA向导后,选择“Configure Automatic Storage Management”,然后单击“Create New”按钮,可以看到ASM磁盘组的配置界面。输入磁盘组的名称,如“dg1”,关于冗余级别,我选择了Norma,并且将VOL1和VOL2设置为一个Failure Group,而VOL3和VOL4设置为一个Failure Group。
以上 *** 作也可以使用sqlplus连接到ASM实例上,使用命令完成。
为了连接到ASM实例上,首先需要设置ORACLE_SID环境变量,然后再使用sqlplus进行连接:
# ORACLE_SID=+ASM
# sqlplus / as sysdba
创建Disk Group的语句如下:
SQL>create diskgroup dg1 normal redundancy
failgroup fg1 disk 'ORCL:VOL1','ORCL:VOL2'
failgroup fg2 disk 'ORCL:VOL3','ORCL:VOL4'
至此,ASM磁盘组的准备已经完成,终于可以在ASM上建立数据库了。还是使用DBCA工具,选择“Create Database”进入创建数据库的向导。按照向导 *** 作,只是在选择存储机制时,选择ASM类型。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)