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=ONSQLNET.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中遇到的问题有所帮助。