『壹』 在命令行如何創建oracle實例與資料庫,需要詳細點教程,謝謝
還是我來告訴你吧!手工建庫須要經過幾個步驟,每一個步驟都非常關鍵。它包括:
1、創建必要的相關目錄
2、創建初始化參數文件
3、設置環境變數Oracle_sid
4、創建實例
5、創建口令文件
6、啟動資料庫到nomount(實例)狀態
7、執行建庫腳本
8、執行catalog腳步本創建數據字典
9、執行catPRoc創建package包
10、執行pupbld
11、由初始化參數文件創建spfile文件
12、執行scott腳本創建scott模式
『貳』 怎麼用linux命令連接racle資料庫
可以通過SSH或者SecureCRTPortable等可以直接連接Linux操作系統的軟體,連接到Linux系統。下面具體介紹一下:
1、登錄到Linux後,就可以在命令窗口直接對Linux進行操作了。先將用戶切換到Oracle。當顯示為[oracle@db ~]$ 時,說明切換成功。命令:su - oracle;
2、切換到Oracle用戶之後,我們登錄到到sqlplus,使用dba許可權登錄到sqlplus。在sqlplus中,我們使用conn連接一下我們具體想要操作的資料庫用戶。命令:conn username/password,示connected表示連接成功;
3、在SQL>中輸入想要進行操作的sql語句,這里我們舉個簡單的例子,以一個單表查詢為例進行演示:sql語句:select * from tablename。
(2)命令行oracle實例擴展閱讀:
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
參考資料:Linux-網路
『叄』 如何用cmd命令連接oracle資料庫
1,非集群下 Windows環境下資料庫
conn scott/[email protected]:1521/orcl
conn scott/123456@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =
(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =
(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
Linux環境下資料庫
conn scott/123@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST
= 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =
orcl)))
2,集群下連接
conn scott/123@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE = yes)(FAILOVER = on)
(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(ADDRESS=
(PROTOCOL=TCP)(HOST=127.0.0.2)(PORT=1521)))(CONNECT_DATA=(SERVER=default)
(SERVICE_NAME=orcl)))
(3)命令行oracle實例擴展閱讀
在命令行中登錄oracle資料庫:
sqlplus username/password 如:普通用戶登錄 sqlplus scott/tiger
sqlplus username/password as sysdba 如:sqlplus sys/admin as sysdba
sqlplus username/password@net_service_name 如: sqlplus scott/tiger@orcl
sqlplus username/password@//host:port/sid
『肆』 如何在Oracle中使用exp和imp導出,導入dmp資料庫文件
1、首先進入命令行,點擊開始,輸入cmd。
『伍』 Oracle創建刪除導入導出命令行總結
說明:
在創建資料庫時輸入的密碼,是修改系統默認的密碼,以system和sysman等系統默認身份登錄時要輸入的密碼就是修改後的密碼(創建資料庫時輸入的密碼)
如果要創建游或新的用戶就必須以system或者sysman(這二者的許可權最大)的身份登錄後才可創建
創建用戶格式:create user 用戶名 identified by 密碼(例如:create user cht identified by cht;)
創建完成後,必須分配許可權,否則連不上資料庫和sqlplus。
因此要做:grant connect,resource,dba to cht;這樣資料庫就可以通過cht/cht連上了。那些select,update,delete,insert的許可權就不必分配了,因為每個用戶默認都有這些基本許可權。
命令行方式連接資料庫的方法:
開始==》運行==》cmd
方式一:
輸入sqlplus,回車
輸入用戶名: system,回車
輸入密碼: orcl,回車
方式二:
輸入sqlplus system/orcl@orcl,回車(system是用戶名,orcl是密碼,@後面的orcl是庫的名字)
(資料庫安裝完成後,有兩個系統級的用戶神激伍 :
1) system 默認密碼為 :manager
2) sys 默認密碼為 :change_on_install)
創建用戶前必須要先建好臨時表空間和數據表空間兩個表空間,否則用系統默認的表空間不好。
//創建臨時表空間
create temporary tablespace zfmi_temp tempfile 'D:oracleoradatazfmizfmi_temp.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;
說明:
1、zfmi_temp 表空間的名字
2、鉛春D:oracleoradatazfmi 存放資料庫文件的地方,一般是安裝資料庫後有控制文件,數據文件和日誌文件的文件夾,再加上要創建表空間的名字+dbf(數據文件)
3、100M 表空間的初始大小
4、32M 表空間自動增長的大小
5、2048M 表空間最大的大小
//創建數據表空間
create tablespace zfmi logging datafile 'D:oracleoradatazfmizfmi.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;
//創建用戶並指定表空間
create user zfmi identified by zfmi default tablespace zfmi temporary tablespace zfmi_temp;
//給用戶授予許可權
grant connect,resource dba to zfmi; (dba:指定所有許可權)
到這一步新建一個用戶的工作就完成了。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//刪除用戶以及用戶所有的對象
drop user zfmi cascade;
//cascade參數是級聯刪除該用戶所有對象,經常遇到如用戶有對象而未加此參數則用戶刪不了的問題,所以習慣性的加此參數
//刪除表空間
前提:刪除表空間之前要確認該表空間沒有被其他用戶使用之後再做刪除
drop tablespace zfmi including contents and datafiles cascade onstraints;
//including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,表空間刪不掉,所以習慣性的加此參數
//including datafiles 刪除表空間中的數據文件
//cascade constraints 同時刪除tablespace中表的外鍵參照
如果刪除表空間之前刪除了表空間文件,解決辦法:
如果在清除表空間之前,先刪除了表空間對應的數據文件,會造成資料庫無法正常啟動和關閉。
可使用如下方法恢復(此方法已經在oracle9i中驗證通過):
下面的過程中,filename是已經被刪除的數據文件,如果有多個,則需要多次執行;tablespace_name是相應的表空間的名稱。
$ sqlplus /nolog
SQL conn / as sysdba;
如果資料庫已經啟動,則需要先執行下面這行:
SQL shutdown abort
SQL startup mount
SQL alter database datafile 'filename' offline drop;
SQL alter database open;
SQL drop tablespace tablespace_name including contents;
導入導出命令:
Oracle數據導入導出imp/exp就相當於oracle數據還原與備份。exp命令可以把數據從遠程資料庫伺服器導出到本地的dmp文件, imp命令可以把dmp文件從本地導入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。
下面介紹的是導入導出的實例。(注意:不用連接到SQL/plus,直接在DOS下就可以導出。)
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp full=y
2 將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:chu.dmp owner=(system,sys)
3 將資料庫中的表inner_notify、notify_staff_relat導出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:chu.dmp tables=(table1) query=" where filed1 like ༼%'"
上面是常用的導出,對於壓縮,既用winzip把dmp文件可以很好的壓縮。
也可以在上面命令後面 加上 compress=y 來實現。
數據的導入
1 將D:chu.dmp 中的數據導入 TEST資料庫中。
imp system/manager@TEST file=d:chu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上 ignore=y 就可以了。
2 將d:chu.dmp中的表table1 導入
imp system/manager@TEST file=d:chu.dmp tables=(table1)
基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然後導入。
注意:
操作者要有足夠的許可權,許可權不夠它會提示。
資料庫時可以連上的。可以用tnsping TEST 來獲得資料庫TEST能否連上。
附錄一:
給用戶增加導入數據許可權的操作
第一,啟動sql*puls
第二,以system/manager登陸
第三,create user 用戶名 IDENTIFIED BY 密碼 (如果已經創建過用戶,這步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字
第五, 運行-cmd-進入dmp文件所在的目錄,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
執行示例:
F:WorkOracle_Databackupimp userid=test/test full=y file=inner_notify.dmp
屏幕顯示
Import: Release 8.1.7.0.0 - Proction on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
連接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Proction
With the Partitioning option
JServer Release 8.1.7.0.0 - Proction
經由常規路徑導出由EXPORT:V08.01.07創建的文件
已經完成ZHS16GBK字元集和ZHS16GBK NCHAR 字元集中的導入
導出伺服器使用UTF8 NCHAR 字元集 (可能的ncharset轉換)
. 正在將AICHANNEL的對象導入到 AICHANNEL
. . 正在導入表 "INNER_NOTIFY" 4行被導入
准備啟用約束條件
成功終止導入,但出現警告。
附錄二:
Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的。
先建立import9.par,
然後,使用時命令如下:imp parfile=/filepath/import9.par
例 import9.par 內容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (註:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
『陸』 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