首页技术实例名(查看Oracle 实例名:一步一步教程)

实例名(查看Oracle 实例名:一步一步教程)

编程之家2024-02-04115次浏览

一、oracle的实例名与ORACLE_SID关系和区别。

oracle的实例名与ORACLE_SID就是说数据库和操作系统之间的交互用的是数据库实例名。有以下不同:

实例名(查看Oracle 实例名:一步一步教程)

1、列入的参数设置不一样:

oracle的实例名:instance_name是oracle数据库参数。

ORACLE_SID:ORACLE_SID是操作系统的环境变量。

2、交互性上不一样:

oracle的实例名:ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。在winnt下,ORACLE_SID还需存在于注册表中。

ORACLE_SID:ORACLE_SID必须与instance_name的值一致。

实例名(查看Oracle 实例名:一步一步教程)

扩展资料:

oracle的文件结构:

数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。

控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。

数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。

日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE;。V$LOG。

实例名(查看Oracle 实例名:一步一步教程)

参数文件:记录基本参数。spfile和pfile。

警告文件:show parameter background_dump_dest---使用共享服务器连接。

跟踪文件:show parameter user_dump_dest---使用专用服务器连接。

参考资料来源:百度百科-Oracle数据库

参考资料来源:百度百科-Oracle

二、如何区分Oracle的数据库,实例,服务名,SID

数据库(database):物理操作系统文件或磁盘(disk)的集合。使用Oracle 10g的自动存储管理(Automatic Storage Management,ASM)或RAW分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。

实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进程所共享。

service_names是对外的服务名,是服务器端使用的,一个库可以设置多个对外服

务名,以实现不同的目的

sid用于实例区分各个数据库,service name用于外部链接。

三、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文件,修改对应的dump属性的路径名,实例名字,控制文件路径等。

然后执行如下命令:

[oracle@localhost oracle]$ export ORACLE_SID=dbtest

[oracle@localhost oracle]$ sqlplus"/ as sysdba"

SQL*Plus: Release 9.2.0.4.0- Production 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

请查看初始化文件中,控制文件的路径是正确,控制文件的路径上的目录是否有权限创建文件,如果这些问题都解决了,那么应该能成功创建控制文件。

下载库(python如何下载库)MYSQL5(mysql5)