linuxoracle数据库实例
Ⅰ 在linux中手动启动ORACLE实例
在Linux系统中,若Oracle数据库已安装并配置为多实例模式,服务器重启后可能无法自动启动所有实例。此时,需要手动启动未启动的实例。下面是详细的步骤:
首先,使用以下命令切换到oracle用户:
确保在“su”和“oracle”之间包含空格,避免执行“bash: sqlplus: command not found”错误。
接下来,在oracle用户下,使用以下命令查看当前实例和切换实例:
执行命令以确定当前实例,然后根据需要切换实例。
之后,进入sqlplus模式,执行以下命令以开始会话:
使用“sqlplus /nolog”命令启动会话。
然后,连接到数据库的dba角色,执行以下命令:
运行“conn /as sysdba”以连接至系统管理员角色。
最后,启动数据库实例,执行以下命令:
使用“startup”命令启动数据库。
此过程确保手动启动未自动启动的Oracle实例,恢复数据库运行。若发现任何问题,请检查错误日志以获取详细信息,并进行相应调整。
Ⅱ linux中用root用户怎么创建oracle实例
先用oracle用户登录
su 记住不能加-,取得oracle用户的环境变量
然后export ORACLE_SID=aaa(实例名)
dbca 按照提示做就OK了
Ⅲ linux上如何删除oracle实例
删除oracle实例记录:
方法一、从图形界面运行dbca,选择删除,按提示一路next;
方法二、手动删除。
1、关闭所有oracle进程,其实只要shutdown
abort即可.因我的机器oracle没设置为开机自动启动,重启机器后oracle进程一个也没有,系统很是干净.
2、删除实例数据文件和mp文件;
find $ORACLE_BASE/ -name $ORACLE_SID
在我系统里面显示如下,将这些目录直接删除;
/u01/app/oracle/admin/testdb
/u01/app/oracle/oradata/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/emca/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/testdb
3、删除其他配置文件
find $ORACLE_BASE/* -name '*[Bb][Tt][Ss][Dd][Bb]2*' | grep -v
admin| grep -v oradata
将查找结果出现的文件也一一删除,当然你可以用xarg结合rm删除.
find结果如下:
/u01/app/oracle/flash_recovery_area/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/emca/testdb
/u01/app/oracle/proct/10.2.0/db_1/cfgtoollogs/dbca/testdb
/u01/app/oracle/proct/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_host_testdb
/u01/app/oracle/proct/10.2.0/db_1/rdbms/log/alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/host_testdb
/u01/app/oracle/proct/10.2.0/db_1/host_testdb/sysman/emd/state/A190EE260BF6B09EB5805807
28916A3B.alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/host_testdb/sysman/log/nmctestdb1521
/u01/app/oracle/proct/10.2.0/db_1/dbs/alert_testdb.log
/u01/app/oracle/proct/10.2.0/db_1/dbs/lktestdb
/u01/app/oracle/proct/10.2.0/db_1/dbs/hc_testdb.dat
/u01/app/oracle/proct/10.2.0/db_1/dbs/orapwtestdb
/u01/app/oracle/proct/10.2.0/db_1/dbs/spfiletestdb.ora
4、最重要的一步,如果你要重建的实例和刚删除实例的实例名一样的话,删除
/etc/oratab文件最后一行。
至此,已干净删除linux系统的oracle实例。
Ⅳ 跪求oracle专家指教: 在linux系统下,如何查看数据库有几个实例,就是判断数据库是单实例还是多实例!!
可以看一下系统中是否有多个亏兄pmon进程,如果有几个pmon进程,就说明有几个实例。命令如下:
ps -ef|grep ora_pmon
解释:pmon进程,进程监视器(Process Monitor)oracle中用于恢复失败的数据核首库用户的强制性进程,它先获取失败用户的标识,释放该用户占有的所有数据库资源。一般一个oracle实例只能有一个pmon进程,可能通过查看pmon进程的多少来判断有几个实例销氏袭。
Ⅳ linux下如何查看oracle上有多少个实例,包括启动了的和未启动的。
用 ps -ef|grep smon
看你当前有多少个已经启动的实例,
没启动的,只能去$ORACLE_HOME/dbs下面去数你有多少init文件了肆庆。
如迹雹做果你有多个ORACLE HOME,姿衡那就挨个数吧
Ⅵ linux下oracle数据库实例怎么重建,原来已经有一个实例,因为字符集问题,需要删除重建,具
首先备份你需要保留的数据
用dbca删除实例
用dbca建立新的实例
导入备份的数据
Ⅶ Linux下的Oracle11g 监听和数据库实例均启动了但是客户端无法连接
有两种情况
1、有防火墙
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 1521 -j ACCEPT添加1521端口访问策略
/etc/init.d/iptables restart重启防火墙
或者关闭防火墙
/etc/init.d/iptables stop
2、只监听的本地访问
netstat -ntlp检查
vi $ORACLE_HOME/network/admin/listener.ora
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))
检查一下
/etc/hosts主机名配置对了没
Ⅷ oracle数据库实例名如何修改
1. 准备
原数据库的实例名为linuxdb,控制文件、数据文件、联机日志文件存放在/home/oracle/ora9/oradata/linuxdb目录,将所有的文件拷贝到另外一个目录/home/oracle/ora9/oradata/dbtest。
再将linuxdb 的初始化文件也复制一份出来,执行如下的sql:
Create pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' from spfile='/home/oracle/ora9/oracle/dbs/spfilelinuxdb.ora';
我们将修改实例名为dbtest。
下面我们开始一步一步地进行处理。
2. 加载初始化文件
打开pfiledbtest.ora文件,修改对应的mp属性的路径名,实例名字,控制文件路径等。
然后执行如下命令:
[oracle@localhost oracle]$ export ORACLE_SID=dbtest
[oracle@localhost oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Proction on Mon Aug 17 16:57:36 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL>
这样加载初始化文件就成功了。
下面接着进行,加载控制文件。
3. 加载控制文件
先执行如下命令。
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
好像是控制文件的路径不对,修改初始文件再次加载。
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01103: database name 'LINUXDB' in controlfile is not 'DBTEST'
根据错误信息提示,是实例名字不一致,但是控制文件是二进制的,用vi打开之后没法编辑,只能通过用重建控制文件可以解决。
在/home/oracle/ora9/oradata/dbtest目录下删除老的三个控制文件。然后开始重建控制文件。
SQL> CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,
9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,
10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M
11 DATAFILE
12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',
13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',
14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',
15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',
16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',
17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',
18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',
19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',
20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',
21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',
22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'
23 CHARACTER SET ZHS16GBK;
CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01990: error opening password file '/home/oracle/ora9/oracle/dbs/orapw'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
根据错误提示,是缺少密码验证文件,用下面的命令创建密码文件。
$cd $ORACLE_HOME/dbs
orapwd password=chenli file=orapwdbtest
SQL> CREATE CONTROLFILE SET DATABASE 'dbtest' RESETLOGS FORCE LOGGING NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,
9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,
10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M
11 DATAFILE
12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',
13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',
14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',
15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',
16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',
17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',
18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',
19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',
20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',
21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',
22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'
23 CHARACTER SET ZHS16GBK;
Control file created.
现在创建成功了。
创建控制文件成功了,下面重新启动数据库。
SQL> startup nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL> alter database mount;
Database altered.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open RESETLOGS;
Database altered.
查看表中的记录,正确的。
修改实例名成功。
4. 总结
由上面的操作可以看到,在数据库维护中,最重要的是数据文件,初始化文件可以从别的实例拷贝过来,然后修改。控制文件可以重新创建,只要数据文件正确,就可以重建初始化文件和控制文件之后,恢复数据库。
遇到的错误:
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-00200: controlfile could not be created
ORA-00202: controlfile: '/home/ora/ora9/oradata/dbtest/control01.ctl'
ORA-27040: skgfrcre: create error, unable to create file
Linux Error: 2: No such file or directory
请查看初始化文件中,控制文件的路径是正确,控制文件的路径上的目录是否有权限创建文件,如果这些问题都解决了,那么应该能成功创建控制文件。