Oracle sid用户洞悉数据库之窗(oracle sid用户)

Oracle sid用户:洞悉数据库之窗

Oracle是企业级数据库管理系统,常常被用于大型商业应用中。在Oracle中,SID(System Identifier)是用于标识特定Oracle实例的参数。在运行Oracle时,我们需要指定具体的SID,以便Oracle知道要连接哪个数据库实例。

本文将详细介绍Oracle SID用户的概念、用法和示例,帮助读者更好地理解和使用Oracle数据库。

一、Oracle SID用户的概念

在Oracle中,每个数据库实例都有一个唯一的SID来标识。SID由Oracle系统管理员在创建数据库实例时设置,SID参数将在启动数据库实例时被用于标识该实例。因此,SID是Oracle实例的唯一标识符。

同时,SID也是用户连接到数据库实例的重要参数。当用户使用Oracle客户端工具连接到数据库时,需要指定正确的SID才能连接到正确的数据库实例。

二、Oracle SID用户的用法

1. 连接Oracle数据库

我们可以使用Oracle客户端工具(如SQL*Plus、Toad等)连接Oracle数据库。连接Oracle数据库需要指定以下信息:

– 主机名或IP地址

– 端口号(通常为1521)

– Oracle SID

具体连接方法如下:

SQL*Plus连接方法:

sqlplus username/password@hostname:port/sid

Toad连接方法:

在连接向导中选择“Oracle ODP.NET”,然后依次填写上述连接信息。

2. 修改Oracle SID

在某些情况下,我们可能需要修改Oracle实例的SID。例如,当我们需要将Oracle实例克隆到另一台服务器时,就需要将新服务器上的实例SID改为与原服务器相同。

修改Oracle SID的方法如下:

1) 停止Oracle实例:

$ORACLE_HOME/bin/dbshut

2) 修改$ORACLE_HOME/network/admin/tnsnames.ora文件中的SID:

MYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = mydb-host)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
(SID = new-sid)
)
)

3) 修改$ORACLE_HOME/network/admin/sqlnet.ora文件中的SID:

NAMES.DIRECTORY_PATH= (TNSNAMES)
SQLNET.SERVER_DNS_RESOLVE=ON
SQLNET.INBOUND_CONNECT_TIMEOUT=120
SID_MAP = (SID=new-sid)(INSTANCE_NAME=mydb)

4) 修改$ORACLE_HOME/dbs/orapwSID文件中的SID:

SID = new-sid

5) 修改$ORACLE_HOME/network/admin/listener.ora文件中的SID:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = new-sid)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0)
(SID_NAME = new-sid)
)
)

6) 启动Oracle实例:

$ORACLE_HOME/bin/dbstart

不同版本的Oracle可能有所不同,请根据自己的情况进行修改。

三、Oracle SID用户示例

以下示例介绍如何在Oracle中创建用户,添加数据和执行查询,并使用SID连接到数据库。

1. 创建用户:

创建用户的SQL命令如下:

CREATE USER test_user IDENTIFIED BY password;
GRANT CONNECT, RESOURCE TO test_user;

2. 添加数据:

假设我们有以下表:

CREATE TABLE departments (
department_id NUMBER(4) PRIMARY KEY,
department_name VARCHAR2(30) NOT NULL
);

CREATE TABLE employees (
employee_id NUMBER(6) PRIMARY KEY,
first_name VARCHAR2(20) NOT NULL,
last_name VARCHAR2(25) NOT NULL,
eml VARCHAR2(25) NOT NULL,
phone_number VARCHAR2(20),
hire_date DATE NOT NULL,
job_id VARCHAR2(10) NOT NULL,
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
manager_id NUMBER(6),
department_id NUMBER(4)
);

我们可以使用以下SQL命令向这两个表中添加数据:

INSERT INTO departments VALUES (10, 'Administration');
INSERT INTO departments VALUES (20, 'Marketing');
INSERT INTO departments VALUES (30, 'Purchasing');
INSERT INTO employees VALUES (100, 'Steven', 'King', 'SKING', '515.123.4567', TO_DATE('17-JUN-87', 'DD-MON-RR'), 'AD_PRES', 24000, NULL, NULL, 90);
INSERT INTO employees VALUES (101, 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', TO_DATE('21-SEP-89', 'DD-MON-RR'), 'AD_VP', 17000, NULL, 100, 90);
INSERT INTO employees VALUES (102, 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', TO_DATE('13-JAN-93', 'DD-MON-RR'), 'AD_VP', 17000, NULL, 100, 90);

3. 执行查询:

使用以下SQL命令查询所有部门的名称:

SELECT department_name FROM departments;

使用以下SQL命令查询所有员工的姓名和薪水:

SELECT first_name, last_name, salary FROM employees;

四、总结

本文详细介绍了Oracle SID用户的概念、用法和示例。通过本文的介绍,我们了解了SID在Oracle中的重要性以及如何连接到指定的数据库实例。我们还学习了如何创建用户、添加数据和执行查询。希望本文能对读者在使用Oracle中遇到的问题有所帮助。


数据运维技术 » Oracle sid用户洞悉数据库之窗(oracle sid用户)