登陸資料庫
[oracle@sq ~]$ sqlplus / as sysdba
[oracle@sq ~]$ sqlplus sys/123456 as sysdba
檢視目前登陸使用者
SQL> show user
切換使用者(第一次登陸 提示使用者鎖定)
SQL> conn scott/tiger
SQL> conn sys/123456 as sysdba
為使用者解鎖
SQL> alter user scott account unlock;
再次登陸
需要新密碼
修改密碼
方法1.
SQL> alter user scott identified by abc;
方法2.
SQL> password scott
--------------------------------
sql語句
SQL> create table tt as select * from dba_object_tables; 資料字典(系統表)dba_ user_ all_
SQL> select OWNER,TABLE_NAME,TABLESPACE_NAME from tt;
檢視伺服器狀态
SQL> select open_mode from v$database; 動态性能試圖
--------------------------------------------
X$ oracle資料庫核心部分,加載資料庫時即被使用,加密命名
檢視資料字典
SQL> select * from dict where rownum < 2;
(列為table_name 其實作實的是資料字典對象名)
dict_columns 記錄着字典視圖列的說明
SQL> select column_name,comments from dict_columns
2 where table_name='DICT';
SQL> select * from
(select table_name,count(*) from dict_columns
group by table_name order by 2 desc)
where rownum < 6;
-------------------------------------------
GV$ 和 V$ 動态性能視圖
GV$ 為全局v$ 主要為RAC實用
v$都會對應一個GV$
檢視背景程序
SQL> !
[oracle@sq ~]$ ps -ef |grep ora_
[oracle@sq ~]$ exit
檢視目前使用者資料庫下面有哪些表
SQL> conn scott/123456
SQL> select table_name from user_tables;
檢視執行個體名
select instance_name from v$instance;
顯示表定義
SQL> desc emp;
建立一個相同的表
SQL> create table emp_bak as select * from emp;
檢視表
SQL> select * from emp;
設定行長
SQL> set lines 1000;
設定頁面記錄條數
SQL> set pagesize 20 ;
關閉資料庫
shutdown normal 需要等待所有事務/程序全部結束 才能關資料庫
shutdown transactional 需要等待,但空閑事務程序自動關閉
shutdown immediate 關閉之前同步資料(生産關閉資料庫常用)
shutdown abort 強制關閉資料庫相當于斷電(此動作非常危險輕易勿用)
啟動資料庫
startup 直接打此指令預設選項為open直接打開資料庫
startup nomount 隻啟動執行個體(裝載執行個體和打開參數檔案)
startup mount 挂載資料庫(裝載執行個體和打開控制檔案,激活某些功能,使用者不能存取資料庫可以進行執行個體或資料的恢複處理)
alter database mount 改變資料庫從nomount狀态到mount狀态
alter database open 打開資料庫(此時才可以正常對資料庫進行讀寫)
alter database open read only 将資料庫打開到隻讀狀态
startup force 重新開機資料庫
資料的送出和回退
commit 送出資料(将資料寫到日志裡并同步到資料檔案)(oracle預設為不送出)
rollback 回退就是取消所有操作,次指令隻對還未commit的操作有效
登出
SQL> disc (用來斷開與目前資料庫的連接配接)
USER is ""
腳本執行
[oracle@sq ~]$ vi a.sql
create table tt(id int,name varchar2(10));
SQL> @/home/oracle/a.sql
修改上次輸入錯誤的指令
SQL> create talbe a
2 (id int); (第一行talbe錯誤)
SQL> l (檢視上次指令)
SQL> 1(修改第一行)
SQL> c/talbe/table
SQL> l
1 create table a
2* (id int)
SQL> /
===========================================
參數檔案pfile與spfile
參數檔案的内容:控制檔案的路徑 要配置設定給sga的記憶體值
Pfile 文本參數檔案(也叫初始化參數檔案)
Vi可以直接修改
Sqlplus中不能通過指令直接修改此參數檔案
Spfile 伺服器參數檔案(二進制)
Vi不可以直接修改
Sqlplus中可以直接修改此參數
Oracle預設使用
Startup對參數檔案的作用
Oracle啟動按以下順序從$ORACLE_HOME/dbs讀取初始化檔案
首先讀取spfile.ora
如果找不到則讀取pfile.ora
如果仍然找不到則讀取initSID.ora
spfile 儲存位置
/oracle/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora
檢視是否使用了spfile
SQL> show parameter spfile
通過pfile 啟動資料庫
SQL> startup pfile=(pfile所在的路徑)
從spfile參數檔案中建立pfile
SQL> create pfile='/oracle/app/oracle/init01.ora' from spfile;
或SQL> create pfile from spfile;
從pfile參數檔案中建立spfile
SQL> shutdown immediate
SQL> create spfile from pfile='/oracle/app/oracle/init01.ora';
或 create spfile from pfile
驗證pfile
SQL> startup pfile='/oracle/app/oracle/init01.ora';
SQL> show parameter spfile;(為空)
SQL> show parameter processes
processes integer 150 (值為150)
SQL> alter system set processes=100;
(不讓修改 pfile不能通過指令修改)
(可vipfile檔案 可以修改*.processes=100)
驗證spfile
SQL> startup
SQL> show parameter spfile;
SQL> alter system set processes=100 scope=spfile;
驗證啟動順序
1.删除spfile
[root@sq /]# rm -rf /oracle/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora
2.目錄下有pfile的一樣可以啟動
3.
Oracle的日志檔案存放位置:位于參數檔案background_dump_dest指定的路徑下
SQL> show parameter background_dump_dest
cd /oracle/app/oracle/admin/orcl/bdump/
[root@sq bdump]# ls
alert_orcl.log orcl_lgwr_10294.trc orcl_lgwr_10357.trc orcl_lgwr_13449.trc
檢視執行個體(主要看SID)
SQL> select * from v$instance;
控制檔案存放位置
SQL> select name from v$controlfile;
======================================================
手工删除庫
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;(靜默狀态,DBA能安全地執行某些操作,這些操作要求從目前非DBA使用者中隔離出來操作。)
SQL> drop database;
手工建庫
1。
[oracle@sq ~]$ vi .bash_profile
ORACLE_SID=vfast;
退出oracle使用者 重新登陸
2。建立初始化檔案
[oracle@sq ~]$ vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora
control_files = (/oracle/app/oracle/oradata/control1.ctl,/oracle/app/oracle/oradata/control2.ctl,/oracle/app/oracle/oradata/control3.ctl)
undo_management = AUTO
undo_tablespace = UNDOTBS1
db_name = ORCLDB
db_unique_name = WENDING
db_block_size = 8192
sga_max_size = 320M
sga_target = 320M
3。建立密碼檔案
[oracle@sq ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123456 force=y
4。建立所需目錄
[oracle@sq ~]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
[oracle@sq ~]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump
[oracle@sq ~]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile
[oracle@sq ~]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump
[oracle@sq ~]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump
[oracle@sq ~]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump
5。建立spfile
SQL> startup nomount
SQL> create spfile from pfile;
6。建立資料庫
[oracle@sq ~]$ vi /home/oracle/createDB.sql
内容為:
create database vfast
logfile group 1 ('$ORACLE_BASE/oradata/vfast/redo01.log') size 100m,
group 2 ('$ORACLE_BASE/oradata/vfast/redo02.log') size 100m,
group 3 ('$ORACLE_BASE/oradata/vfast/redo03.log') size 100m
maxlogfiles 10
maxlogmembers 5
maxloghistory 5
maxdatafiles 100
maxinstances 1
character set zhs16gbk
national character set al16utf16
datafile '$ORACLE_BASE/oradata/vfast/system01.dbf' size 350m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile '$ORACLE_BASE/oradata/sysaux01.dbf' size 350m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace temp01 tempfile '$ORACLE_BASE/oradata/vfast/temp01.dbf' size 50m reuse autoextend on next 1m maxsize 500m
undo tablespace undotbs1 datafile '$ORACLE_BASE/oradata/vfast/undotbs01.dbf' size 500m reuse autoextend on next 1m maxsize unlimited;
SQL> @/home/oracle/createDB.sql
7.
SQL> select name from v$database;
8.
SQL> @/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql(建資料字典視圖)
SQL> @/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/catproc.sql(建存儲過程包)
SCN的概念
SCN是順序遞增的一個數字,在Oracle中用來辨別資料庫的每一次改動,及其先後順序。SCN的最大值是0xffff.ffffffff。
檢視目前scn号
SQL> select current_scn from v$database;
1、系統檢查點scn
當一個檢查點動作完成之後,Oracle就把系統檢查點的SCN存儲到控制檔案中。
select checkpoint_change# from v$database
2、資料檔案檢查點scn
當一個檢查點動作完成後,Oracle就把每個資料檔案的scn單獨存放在控制檔案中。
select name,checkpoint_change# from v$datafile
3、啟動scn
Oracle把這個檢查點的scn存儲在每個資料檔案的檔案頭中,這個值稱為啟動scn,
因為它用于在資料庫執行個體啟動時,檢查是否需要執行資料庫恢複。
select name,checkpoint_change# from v$datafile_header
4、終止scn
每個資料檔案的終止scn都存儲在控制檔案中。
select name,last_change# from v$datafile
在正常的資料庫操作過程中,所有正處于聯機讀寫模式下的資料檔案的終止scn都為null.
5、在資料庫運作期間的scn值
在資料庫打開并運作之後,控制檔案中的系統檢查點、控制檔案中的資料檔案檢查點scn和每個資料檔案頭中的啟動scn都是相同的。控制檔案中的每個資料檔案的終止scn都為null.
1)系統目前SCN并不是在任何的資料庫操作發生時都會改變,SCN是在事務送出或復原時改變,
2)在控制檔案,資料檔案頭,資料塊,日志檔案頭,日志檔案change vector中都有SCN,但其作用各不相同
create table t1 (id int);
shutdown immediate
startup
後重新啟動再次檢視SCN,會變化
================================================
SQL> select count(*) from dba_object_tables; 統計行數
解決中文亂碼問題 WE8ISO8859P1
SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET'; (檢視目前字元集)
SQL> shutdown immediate
SQL> startup mount
SQL> alter system enable restricted session; (限制會話)
SQL> show parameter job_queue_processes;
SQL> alter system set job_queue_processes=0;(工作程序為0)
SQL> alter database open;
SQL> alter database character set ZHS16GBK;
(報錯 新的字元集必須是老的字元集 的更新版本)
SQL> alter database character set internal_use ZHS16GBK;
(使用Oracle内部指令internal_use,跳過超集檢查)
SQL> startup mount
SQL> alter system set job_queue_processes=10;(改會原來值)
SQL> alter database open;(OK)
nls_lang是在用戶端設定設定用戶端字元集,也就是在環境變量(Linux:~/.bash_profile)中。
nls_language在服務端設定,SERVER端的lang,屬于parameter,可以由alter system set nls_language='...' scope=spfile 來修改。
nls_characterset也是設定伺服器的字元集。
==========================================================
網絡連接配接資料庫
監聽配置
建立好資料庫後需要建立監聽與網絡服務,才能使用戶端或APP應用于oracle進行網絡連接配接
1.圖形建立 NETMGR工具
2.手工動态注冊
[oracle@sq ~]$ vi /oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
添加下面内容:
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP) (HOST = oracle.sq.com) (PORT = 1521))
)
[root@sq /]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.8.2 sq
192.168.8.2 oracle.sq.com
測試
[oracle@sq ~]$ lsnrctl start
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sq)(PORT=1521)))
The listener supports no services
The command completed successfully
(可以看到成功啟動了監聽程式,但目前沒有支援其他服務)
[oracle@sq ~]$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup force
[oracle@sq ~]$ lsnrctl status
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
(可以看到 連接配接服務已經被動态注冊上了)
3.手工靜态注冊
[oracle@sq ~]$ lsnrctl stop
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_NAME = orcl)
(ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
(SID_NAME = orcl)
)
)
[oracle@sq ~]$ lsnrctl start(成功)
4.自動動态注冊
SQL> alter system register;
通過pmon程序 自動識别
測試監聽
telnet 192.168.8.2 1521
--------------------
****如果netmgr 報java錯誤
切換到root使用者 #xhost + (執行)
------------------------------
[oracle@sq86 admin]$ vi sqlnet.ora (配置參數檔案)
TCP.INVITED_NODES= (192.168.8.6) (允許8.6連接配接)
TCP.EXCLUDED_NODES= (192.168.8.5) (拒絕8.5連接配接)
==============================================================
用戶端連接配接
伺服器端
cd /oracle/app/oracle/product/10.2.0/db_1/network/admin
[oracle@sq admin]$ vi tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
用戶端
安裝 client軟體 developer軟體
配置和移植工具 -->net manager
添加
監聽程式 和 服務命名
OEM 配置
1.建立資料庫
[oracle@oracle1 emdrep]$ emctl stop dbconsole
[oracle@sq ~]$ emca -repos recreate
STARTED EMCA at Apr 5, 2011 2:27:22 AM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Enter the following information:
Database SID: orcl
Listener port number: 1521
Password for SYS user:
Password for SYSMAN user:
Do you wish to continue? [yes(Y)/no(N)]: y
SQL> alter user DBSNMP identified by abc;
[oracle@sq admin]$ emca -config dbcontrol db
Password for DBSNMP user:
企業管理器控制台的狀态
[oracle@sq admin]$ emctl status dbconsole
/oracle/app/oracle/product/10.2.0/db_1/network/admin/samples
******************
注釋:
如果重建em時間過長
分開執行,先删除
[oracle@oracle1 emdrep]$ emca -deconfig dbcontrol db -repos drop
再次建立em
[oracle@oracle1 emdrep]$ emca -repos create
===================================================================
1
mkdir test
cd test
touch {1..100000}
touch {100001..200000}
touch {200001..300000}
touch {300001..400000}
touch {400001..500000}
touch {500001..600000}
建立出 60w個檔案
2.rm -rf * (出錯 參數清單中不支援這麼大)
3.ls|xargs rm -rf (ls檢視的每一條記錄 單獨放到rm中執行)
本文轉自陳繼松 51CTO部落格,原文連結:http://blog.51cto.com/chenjisong/1737378,如需轉載請自行聯系原作者