1. 啟動oracle資料庫命令
(1)startup(用sys用戶或者其他擁有啟動資料庫許可權的用戶登錄資料庫軟體,然後執行該命令即可,如果存在多個實例,請在啟動前確認SID),資料庫有三個狀態nomount,mount,和open,默認開啟到open,如果開啟到另外兩個狀態,那麼可以通過alter命令改變狀態。
(2)如果是rac中啟停資料庫節點,那麼有專門的命令srvcrl(這個僅僅是命令的操作符,後面有參數的,參數我就不寫了,具體可以查一下,網上很多與偶內容的),另外還有crscrl(啟停crs服務的命令,同樣也是操作符,後面有參數的,這里也不寫了,自己查一下就可以了)
(3)啟動資料庫還有一個命令就是啟動監聽,lsnrctl命令(後面同樣有參數,能啟動停止,也能查詢監聽狀態,這個監聽的基本命令)
2. 如何通過命令行啟動oracle
1.
打開命令行窗口界面,可以同時按住「ctrl+R」鍵,在彈出來的運行窗口中輸入cmd。
2.
啟動oracle服務,在命令行窗口中輸入「net
start
oracleserviceXXXX」後面的XXXX實際是需要根據您自己的資料庫實例名進行替換。如果您不知道,可以看下「計算機管理」界面下的服務中,能不能找到服務名類似的服務。提示「服務已經啟動成功」就說明服務啟動起來了。
3.
啟動監聽程序,在命令行窗口輸入lsnrctl
start,等到提示「命令執行成功」就可以了。
3. Oracle中通過命令行實現定時操作詳解
Oracle中通過命令行實現定時操作詳解 Oracle中通過命令行實現定時操作詳解 Oracle基礎
眾所周知 一般操作系統會提供定時執行任務的方法 例如 Unix平台上提供了讓系統定時執行任務的命令Crontab 但是 對於某些需求 例如 一些對資料庫表的操作 最為典型的是證券交易所每日收盤後的結算 它涉及大量的資料庫表操作 如果仍然利用操作系統去定時執行 不僅需要大量的編程工作 而且還會出現用戶不一致等運行錯誤 甚至導致程序無法執行
一 分析問題
事實上 對於以上需求 我們可以利用資料庫本身擁有的功能Job Queue(任務隊列管理器)去實現 任務隊列管理器允許用戶提前調度和安排某一任務 使其能在指定的時間點或時間段內自動執行一次或多次 由於任務在資料庫中被執行 所以執行效率很高
任務隊列管理器允許我們定製任務的執行時間 並提供了靈活的處理方式 還可以通過配置 安排任務在系統用戶訪問量少的時段內執行 極大地提高了工作效率 例如 對於資料庫日常的備份 更新 刪除和復制等耗時長 重復性強的工作 我們就可以利用任務隊列管理器去自動執行以減少工作量
目前 擁有此項功能的資料庫有許多 最有代表性的是SQL Server Oracle 等 但是 要讓任務隊列管理器工作 還需要我們加以配置才能實現 SQL Server的功能配置是在一個圖形化界面(GUI)中實現的 非常簡單 利用OEM客戶端管理工具 Oracle的配置也可以在一個圖形界面中完成 然而大多數的用戶更習慣於命令行的方式去操縱資料庫 本文介紹如何通過命令行實現這種配置
二 實現步驟
.確保Oracle的工作模式允許啟動任務隊列管理器
Oracle定時執行 Job Queue 的後台程序是SNP進程 而要啟動SNP進程 首先要確保整個系統的模式是可以啟動SNP進程的 這需要以DBA的身份去執行如下命令
svrmgrl> alter system enable restricted session; 或sql> alter system disenable restricted session;
利用如上命令更改系統的會話方式為disenable restricted 為SNP的啟動創造條件
.確保Oracle的系統已經配置了任務隊列管理器的啟動參數
SNP的啟動參數位於Oracle的初始化文件中 該文件放在$ORACLE_HOME/dbs路徑下 如果Oracle的SID是myora 的話 則初始化文件就是initmyora ora 在文件中對SNP啟動參數的描述部分如下
job_queue_process=n job_queue_interval=N
第一行定義SNP進程的啟動個數為n 系統預設值為 正常定義范圍為 ~ 根據任務的多少 可以配置不同的數值
第二行定義系統每隔N秒喚醒該進程一次 系統預設值為 秒 正常范圍為 ~ 秒 事實上 該進程執行完當前任務後 就進入睡眠狀態 睡眠一段時間後 由系統的總控負責將其喚醒
如果該文件中沒有上面兩行 請按照如上配置添加 配置完成後 需要重新啟動資料庫 使其生效 注意 如果任務要求執行的間隔很短的話 N的配置也要相應地小一點
.將任務加入到資料庫的任務隊列中
調用Oracle的dbms_job包中的存儲過程 將任務加入到任務隊列中
dbms_job submit( job out binary_integer whatinarchar next_date indate intervalinvarchar no_parseinboolean)
其中
●job 輸出變數 是此任務在任務隊列中的編號
●what 執行的任務的名稱及其輸入參數
●next_date 任務執行的時間
●interval 任務執行的時間間隔 下面詳細討論一下dbms_job submit中的參數interval 嚴格地講 interval是指上一次執行結束到下一次開始執行的時間間隔 當interval設置為null時 該job執行結束後 就被從隊列中刪除 假如我們需要該job周期性地執行 則要用 sysdate+m 表示
將任務加入到任務隊列之前 要確定執行任務的資料庫用戶 若用戶是scott 則需要確保該用戶擁有執行包dbms_job的許可權 若沒有 需要以DBA的身份將權利授予scott用戶
svrmgrl> grant execute on dbms_job to scott;
.將要執行的任務寫成存儲過程或其他的資料庫可執行的pl/sql程序段
例如 我們已經建立了一個存儲過程 其名稱為my_job 在sql/plus中以scott用戶身份登錄 執行如下命令
sql> variable n number; sql> begin dbms_job submit(:n my_job; sysdate sysdate+ / ); mit; end; /
系統提示執行成功
Sql> print :n;
系統列印此任務的編號 例如結果為
如上 我們創建了一個每隔 分鍾執行一次的任務號為 的任務 可以通過Oracle提供的數據字典user_jobs察看該任務的執行情況
sql> select job next_date next_sec failures broken from user_jobs;
執行結果如下
job next_date next_sec failures broken / / : : N
這表示任務號為 的任務 下一次將在 / / : : 執行 此任務的執行失敗記錄為 次 注意 當執行job出現錯誤時 Oracle將其記錄在日誌里 失敗次數每次自動加 當執行失敗次數達到 時 Oracle就將該job標志為broken 此後 Oracle不再繼續執行它 直到用戶調用過程dbms_job broken 重新設置為not broken 或強制調用dbms_job run來重新執行它
lishixin/Article/program/Oracle/201311/17096
4. oracle怎麼用命令執行sql文件
Oracle執行外部文件:
c:>sqlplus
user/pwd@db
sql>@new.sql
執行多個sql文件:
1.把所有的文件都放在同一個目錄下,然後在命令行里執行命令:
c:>dir/b
>
d:/1.sql
會把所有的sql文件名都輸出到一個sql文件中。
2.用UltraEdit打開生成的sql文件,alt+C切換到column
mode,給所有的行前都添加一個"@",保存。
3.在sqlplus中執行"@d:/1.sql"
如何避免'&'字元:
sql中&可以傳遞參數,但有時需要插入'&',例:
SQL>
select
'&hello'
v
from
al;
輸入
hello
的值:
hello
原值
1:
select
'&hello'
v
from
al
新值
1:
select
'hello'
v
from
al
v
-----
hello
可以使用如下方法避免:
A:
SQL>
select
chr(38)
||
'hello'
v
from
al;
V
------
&hello
B:
SQL>
set
define
off
SQL>
select
'&hello'
v
from
al;
V
------
&hello
5. 重啟資料庫命令 oracle
在命令窗口上輸入:sqlplus /nolog
6. Oracle常見的命令
太多了, 下面的只是一小部分oracle常用命令(我的筆記)
oracle里常用命令第一章:日誌管理 1.forcing log switches
sql> alter system switch logfile;
2.forcing checkpoints
sql> alter system checkpoint;
3.adding online redo log groups
sql> alter database add logfile [group 4]
sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;
4.adding online redo log members
sql> alter database add logfile member
sql> '/disk3/log1b.rdo' to group 1,
sql> '/disk4/log2b.rdo' to group 2;
5.changes the name of the online redo logfile
sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log'
sql> to 'c:/oracle/oradata/redo01.log';
6.drop online redo log groups
sql> alter database drop logfile group 3;
7.drop online redo log members
sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log';
8.clearing online redo log files
sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo';
9.using logminer analyzing redo logfiles
a. in the init.ora specify utl_file_dir = ' '
b. sql> execute dbms_logmnr_d.build('oradb.ora','c:\oracle\oradb\log');
c. sql> execute dbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log',
sql> dbms_logmnr.new);
d. sql> execute dbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log',
sql> dbms_logmnr.addfile);
e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\log\oradb.ora');
f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters
sql> v$logmnr_logs);
g. sql> execute dbms_logmnr.end_logmnr; 第二章:表空間管理
1.create tablespaces
sql> create tablespace tablespace_name datafile 'c:\oracle\oradata\file1.dbf' size 100m,
sql> 'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k [logging/nologging]
sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)
sql> [online/offline] [permanent/temporary] [extent_management_clause]
2.locally managed tablespace
sql> create tablespace user_data datafile 'c:\oracle\oradata\user_data01.dbf'
sql> size 500m extent management local uniform size 10m;
3.temporary tablespace
sql> create temporary tablespace temp tempfile 'c:\oracle\oradata\temp01.dbf'
sql> size 500m extent management local uniform size 10m;
4.change the storage setting
sql> alter tablespace app_data minimum extent 2m;
sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);
5.taking tablespace offline or online
sql> alter tablespace app_data offline;
sql> alter tablespace app_data online;
6.read_only tablespace
sql> alter tablespace app_data read only|write;
7.droping tablespace
sql> drop tablespace app_data including contents;
8.enableing automatic extension of data files
sql> alter tablespace app_data add datafile 'c:\oracle\oradata\app_data01.dbf' size 200m
sql> autoextend on next 10m maxsize 500m;
9.change the size fo data files manually
sql> alter database datafile 'c:\oracle\oradata\app_data.dbf' resize 200m;
10.Moving data files: alter tablespace
sql> alter tablespace app_data rename datafile 'c:\oracle\oradata\app_data.dbf'
sql> to 'c:\oracle\app_data.dbf';
11.moving data files:alter database
sql> alter database rename file 'c:\oracle\oradata\app_data.dbf'
sql> to 'c:\oracle\app_data.dbf'; 第三章:表 1.create a table
sql> create table table_name (column datatype,column datatype]....)
sql> tablespace tablespace_name [pctfree integer] [pctused integer]
sql> [initrans integer] [maxtrans integer]
sql> storage(initial 200k next 200k pctincrease 0 maxextents 50)
sql> [logging|nologging] [cache|nocache]
2. an existing table
sql> create table table_name [logging|nologging] as subquery
3.create temporary table
sql> create global temporary table xay_temp as select * from xay;
on commit preserve rows/on commit delete rows
4.pctfree = (average row size - initial row size) *100 /average row size
pctused = 100-pctfree- (average row size*100/available data space)
5.change storage and block utilization parameter
sql> alter table table_name pctfree=30 pctused=50 storage(next 500k
sql> minextents 2 maxextents 100);
6.manually allocating extents
sql> alter table table_name allocate extent(size 500k datafile 'c:/oracle/data.dbf');
7.move tablespace
sql> alter table employee move tablespace users;
8.deallocate of unused space
sql> alter table table_name deallocate unused [keep integer]
9.truncate a table
sql> truncate table table_name;
10.drop a table
sql> drop table table_name [cascade constraints];
11.drop a column
sql> alter table table_name drop column comments cascade constraints checkpoint 1000;
alter table table_name drop columns continue;
12.mark a column as unused
sql> alter table table_name set unused column comments cascade constraints;
alter table table_name drop unused columns checkpoint 1000;
alter table orders drop columns continue checkpoint 1000
data_dictionary : dba_unused_col_tabs 第四章:索引 1.creating function-based indexes
sql> create index summit.item_quantity on summit.item(quantity-quantity_shipped);
2.create a B-tree index
sql> create [unique] index index_name on table_name(column,.. asc/desc) tablespace
sql> tablespace_name [pctfree integer] [initrans integer] [maxtrans integer]
sql> [logging | nologging] [nosort] storage(initial 200k next 200k pctincrease 0
sql> maxextents 50);
3.pctfree(index)=(maximum number of rows-initial number of rows)*100/maximum number of rows
4.creating reverse key indexes
sql> create unique index xay_id on xay(a) reverse pctfree 30 storage(initial 200k
sql> next 200k pctincrease 0 maxextents 50) tablespace indx;
5.create bitmap index
sql> create bitmap index xay_id on xay(a) pctfree 30 storage( initial 200k next 200k
sql> pctincrease 0 maxextents 50) tablespace indx;
6.change storage parameter of index
sql> alter index xay_id storage (next 400k maxextents 100);
7.allocating index space
sql> alter index xay_id allocate extent(size 200k datafile 'c:/oracle/index.dbf');
8.alter index xay_id deallocate unused;
7. oracle 中用什麼命令執行一個帶參數的存儲過程
具體如下:
1、第一步,創建一個新的存儲過程,見下圖,轉到下面的步驟。