第一步,以最高級別 SYSDBA 身份登錄數據庫
cmd 進入命令行
登錄方式一:
C:\Documents and Settings\Administrator>sqlplus sys/sys as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 5 月 2916:08:00 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OL AP and Data Mining options
SQL>
登錄方式二:
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 5 月 2916:27:31 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/sys@orcl as sysdba
已連接。
SQL>
登錄方式三:
C:\Documents and Settings\Administrator>sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 5 月 2916:28:45 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
請輸入用戶名: sys@orcl as sysdba
輸入口令:
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OL AP and Data Mining options
SQL>
登錄方式四:
C:\Documents and Settings\Administrator>sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 5 月 2916:31:18 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
請輸入用戶名: scott
輸入口令:
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OL AP and Data Mining options
SQL> conn sys/sys@orcl as sysdba;
已連接。
SQL>
登錄方式五:
C:\Documents and Settings\Administrator>sqlplus sys/sys@orcl as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 5 月 2916:37:18 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OL AP and Data Mining options
SQL>
============================================================================================
第二部:創建表空間
1、創建表空間
create tablespace tb_nanc
datafile 'C:\Javawork\oracle10g\productd\oradata\orcl\tb_nanc.dbf'
size 50M
autoextend on next 50m maxsize 2048m
extent management local;
創建表空間 名為:tb_nanc,
存放文件地址為 C:\Javawork\oracle10g\productd\oradata\orcl\
表空間大小為 50M,超過了就自動增加 50M,最大 2G,
2、創建臨時表空間
create temporary tablespace tb_nanc_temp
tempfile
'C:\Javawork\oracle10g\productd\oradata\orcl\tb_nanc_temp.dbf'
size 32m
autoextend on next 32m maxsize 1024m
extent management local;
創建臨時表空間 名為:tb_nanc_temp,
存放文件地址為 C:\Javawork\oracle10g\productd\oradata\orcl\
臨時表空間大小為 32M,超過了就自動增加 32M,最大 1G
3、刪除表空間及數據
drop tablespace tb_nanc including contents and datafiles;
drop tablespace tb_nanc_temp including contents and datafiles;
DROP TABLESPACE TBS01 INCLUDING CONTENTS AND DATAFILES
select * from dba_data_files
alter database default tablespace system;(更改默認表空間)
============================================================================================
第三部:創建用戶並授權
1、創建用戶
create user tb_nanc identified by tb_nanc default tablespace tb_nanc
temporary tablespace tb_nanc_temp;
創建了用戶 tb_nanc 密碼是 tb_nanc
默認在表空間 tb_nanc 和臨時表空間 tb_nanc_temp 里面。
2、給用戶授權
1,grant connect,resource to tb_nanc;
將 connect,resource 角色權限授權給 tb_nanc
2,grant dba to tb_nanc;
將 dba 角色權限授權給 tb_nanc
3、撤銷權限
revoke dba on table1 from zhangch //收回權限
revoke dba from zhangch
數據庫特權 說明
DBA 數據庫創建者/所有者。能夠授予數據庫中的其他對象上的特權。
Resource 能夠連接到數據庫並創建其他對象。
Connect 能夠連接到數據庫執行查詢。
3、如果用戶被鎖住了,就用語句給解開
alter user tb_nanc account unlock;
============================================================================================
第四部:刪除表空間、用戶
--//刪除表空間
drop tablespace test_temp including CONTENTS and datafiles;
--//修改用戶密碼:
alter user test identified by new_password;
--//刪除用戶:
drop user 用戶名 cascade; --//執行該語句請小心,會級聯刪除該用戶下所有對象。
--//取消用戶權限:
revoke connect,resouce from lqcommunity
===============================================================================
第五部:導入、導出數據庫
1 導入數據庫
在重新開一個 cmd 命令窗口,直接輸入,即在 dos 命令行下,而不是在 sql>下:
imp tb_nanc/tb_nanc@orcl tablespaces=tsp_emr fromuser=tb_nanc touser=tb_nancfile=D:\nancheshenyang\tb_nanc2010-05-29.DMP log=d:\logte%.log
說明:當前用戶名 /密碼@ 數據庫名 fromuser=當初導出時的用戶 touser= 導入的新用
戶 file=d: \test.dmp
如果全點就是,
IMP hr/hr BUFFER=64000 full=y FILE=D: \zgnc\ehr.dmp
2、導出數據庫
在重新開一個 cmd 命令窗口,直接輸入,即在 dos 命令行下,而不是在 sql>下:
exp tb_nanc/tb_nanc@orc_nanc owner=tb_nanc file=d:\tb_nancte%.dmplog=d:\logte%.log
6
【其中 orc_nanc 是自己給起的服務名,即\network\admin\tnsnames.ora 下的名稱,不是
對方的實例名】
1、 為避免錯誤,最好,在新創建的表空間,用戶名和密碼,都是和原來的用戶名和密碼都一
樣的,這樣節省很多麻煩事。
第五部:一些常用命令
1、表操作
查看當前用戶有哪了些表:
select * from tab;
select table_name from user_tables; //當前用戶的表
select table_name from all_tables; //所有用戶的表
select table_name from dba_tables; //包括系統表
查看某表的表結構:
desc table_name;
2、用戶操作
查看所有用戶: select * from all_users;
查看當前用戶的角色 select * from user_role_privs;
查看當前用戶的系統權限 select * from user_sys_privs
查看當前角色的系統權限 select * from role_sys_privs
3、
select * from all_tab_privs; --------查看所用的用戶的可操作表權限
select * from user_tab_privs; --------查看當前用戶的表可操作權限
創建新用戶:
create user abc identified by abc
default tablespace myspace
temporary tablespace myspacetemp;
刪除用戶: drop user user_name cascade;
為用戶授權: grant connect,resource to user_name;
取消用戶的授權: revoke connect,resource from user_name;
修改用戶密碼: alter user user_name identified by user_pwd;
第六部:數據庫名、實例名、數據庫域名、
全局數據庫名、服務名
概念搞得一頭霧水。我們現在就來把它們弄個明白。
1、數據庫名
什么是數據庫名?
數據庫名就是一個數據庫的標識,就像人的身份證號一樣。他用參數 DB_NAME 表示,如果一台
機器上裝了多全數據庫,那么每一個數據庫都有一個數據庫名。在數據庫安裝或創建完成之后,
參數 DB_NAME 被寫入
參數文件之中。格式如下:
DB_NAME=myorcl
...
在創建數據庫時就應考慮好數據庫名,並且在創建完數據庫之后,數據庫名不宜修改,即使要修
改也會很麻煩。因為,數據庫名還被寫入控制文件中,控制文件是以二進制型式存儲的,用戶
無法修改控制文件的內容。假設用戶修改了參數文件中的數據庫名,即修改 DB_NAME 的值。
但是在 Oracle 啟動時,由於參數文件中的 DB_NAME 與控制文件中的數據庫名不一致,導致
數據庫啟動失敗,將返回 ORA-01103 錯誤。
數據庫名的作用
數據庫名是在安裝數據庫、創建新的數據庫、創建數據庫控制文件、修改數據結構、備份與恢
復數據庫時都需要使用到的。有很多 Oracle 安裝文件目錄是與數據庫名相關的,如:
winnt: d:oracleproduct10.1.0oradataDB_NAME...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:oracleproduct10.1.0adminDB_NAMEpfileini.ora
Unix:
/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORA
CLE_SID.ora
跟蹤文件目錄:
winnt:
/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/... 另外,在創建數據
時,careate database 命令中的數據庫名也要與參數文件中 DB_NAME 參數的值一致,否
則將產生錯誤。同樣,修改數據庫結構的語句 alter database ,當然也要指出要修改的
數據庫的名稱。
如果控制文件損壞或丟失,數據庫將不能加載,這時要重新創建控制文件,方法是以 nomount
8
方式啟動實例,然后以 create controlfile 命令創建控制文件,當然這個命令中也是指指
DB_NAME。還有在備份或恢復數據庫時,都需要用到數據庫名。
總之,數據庫名很重要,要准確理解它的作用。
查詢當前數據名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看參數文件。
修改數據庫名前面建議:應在創建數據庫時就確定好數據庫名,數據庫名不應作修改,因為修
改數據庫名是一件比較復雜的事情。那么現在就來說明一下,如何在已創建數據之后,修改數
據庫名。步驟如下:
1.關閉數據庫。
2.修改數據庫參數文件中的 DB_NAME 參數的值為新的數據庫名。
3.以 NOMOUNT 方式啟動實例,修建控制文件( 有關創建控制文件的命令語法,請參考 oracle
文檔)
2、數據庫實例名
什么是數據庫實例名?
數據庫實例名是用於和操作系統進行聯系的標識,就是說數據庫和操作系統之間的交互用的是
數據庫實例名。實例名也被寫入參數文件中,該參數為 instance_name,在 winnt 平台中,
實例名同時也被寫入注冊表。
數據庫名和實例名可以相同也可以不同。在一般情況下,數據庫名和實例名是一對一的關系,
但如果在 oracle 並行服務器架構( 即 oracle 實時應用集群) 中,數據庫名和實例名是一對多
的關系。
查詢當前數據庫實例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在參數文件中查詢。
數據庫實例名與 ORACLE_SID 雖然兩者都表是 oracle 實例,但兩者是有區別的。
instance_name 是 oracle 數據庫參數。而 ORACLE_SID 是操作系統的環境變量。
ORACLD_SID 用於與操作系統交互,也就是說,從操作系統的角度訪問實例名,必須通過
ORACLE_SID。在 winnt 下,ORACLE_SID 還需存在於注冊表中。且 ORACLE_SID 必須與
instance_name 的值一致,否則,你將會收到一個錯誤,在 unix 平台,是“ORACLE not
available”,在 winnt 平台,是 “TNS:協議適配器錯誤”。數據庫實例名與網絡連接數
據庫實例名除了與操作系統交互外,還用於網絡連接的 oracle 服務器標識。當你配置 oracle
主機連接串的時候,就需要指定實例名。當然 8i 以后版本的網絡組件要求使用的是服務名
SERVICE_NAME。這個概念接下來說明。
9
3、數據庫域名
什么是數據庫域名?
在分布工數據庫系統中,不同版本的數據庫服務器之間,不論運行的操作系統是 unix 或是
windows,各服務器之間都可以通過數據庫鏈路進行遠程復制,數據庫域名主要用於 oracle
分布式環境中的復制。舉例說明
如:
全國交通運政系統的分布式數據庫,其中:
福建節點: fj.jtyz
福建廈門節點: xm.fj.jtyz
江西: jx.jtyz
江西上饒:sr.jx.jtyz
這就是數據庫域名。
數據庫域名在存在於參數文件中,他的參數是 db_domain.
查詢數據庫域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在參數文件中查詢。
全局數據庫名
全局數據庫名=數據庫名+ 數據庫域名,如前述福建節點的全局數據庫名是:oradb.fj.jtyz
4、數據庫服務名
什么是數據庫服務名?
從 oracle9i 版本開始,引入了一個新的參數,即數據庫服務名。參數名是 SERVICE_NAME 。
如果數據庫有域名,則數據庫服務名就是全局數據庫名;否則,數據庫服務名與數據庫名相同。
查詢數據庫服務名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在參數文件中查詢。
數據庫服務名與網絡連接從 oracle8i 開如的 oracle 網絡組件,數據庫與客戶端的連接主機
串使用