oracle手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)步驟如下所示:
成都創(chuàng)新互聯(lián)公司10年專注成都高端網(wǎng)站建設(shè)按需網(wǎng)站建設(shè)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)服務(wù);成都創(chuàng)新互聯(lián)公司服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),微信小程序,軟件開發(fā),網(wǎng)絡(luò)營(yíng)銷推廣,網(wǎng)絡(luò)運(yùn)營(yíng)服務(wù)及企業(yè)形象設(shè)計(jì);成都創(chuàng)新互聯(lián)公司擁有眾多專業(yè)的高端網(wǎng)站制作開發(fā)團(tuán)隊(duì),資深的高端網(wǎng)頁(yè)設(shè)計(jì)團(tuán)隊(duì)及經(jīng)驗(yàn)豐富的架構(gòu)師高端網(wǎng)站策劃團(tuán)隊(duì);我們始終堅(jiān)持從客戶的角度出發(fā),為客戶量身訂造網(wǎng)絡(luò)營(yíng)銷方案,解決網(wǎng)絡(luò)營(yíng)銷疑問(wèn)。
1.編寫初始化參數(shù)文件
2.設(shè)置操作系統(tǒng)環(huán)境變量
3.創(chuàng)建實(shí)例
4.以管理員身份連接數(shù)據(jù)庫(kù)
5.啟動(dòng)實(shí)例
6.create
database
創(chuàng)建數(shù)據(jù)庫(kù)
7.運(yùn)行數(shù)據(jù)字典腳本
8.Oracle的網(wǎng)絡(luò)配置
(客戶端連接到服務(wù)端)
初始化參數(shù)文件
從%ORACLE_HOME%\admin\sample\pfile從復(fù)制initsmpl.ora文件,并黏貼到$ORACLE_HOME%\database目錄下,改名為initsid假設(shè)改為initzhouyt.ora.(init為文本文件)
對(duì)initzhouyt.ora內(nèi)容進(jìn)行修改
新增參數(shù)
*
instance_name=zhouyt
*
db_domain=hdu.edu.cn
修改參數(shù)
*
db_name=zhouyt
*
db_block_size=8192(8kM)
*
remote_login_passwordfile=exclusive
操作系統(tǒng)環(huán)境變量
設(shè)置操作系統(tǒng)環(huán)境變量oracle_sid指向數(shù)據(jù)庫(kù)實(shí)例的名稱
set
oracle_sid=zhouyt
該命令在window
dos窗口下只對(duì)當(dāng)前有效,當(dāng)關(guān)閉窗口則失效,想要一直有效,則需要在系統(tǒng)環(huán)境變量中修改
創(chuàng)建實(shí)例
實(shí)用工具oradim使用
在DOS窗口輸入命令
oradim
-new
-sid
zhouyt
-intpwd
sys123(sys的密碼,sys是管理員)
-startmode
auto
sid是Oracle在操作系統(tǒng)中的“身份證號(hào)碼”
管理員身份連接數(shù)據(jù)庫(kù)
sqlplus實(shí)用工具登錄數(shù)據(jù)庫(kù)
在DOS命令輸入sqlplus/nolog
只是登錄狀態(tài)
以數(shù)據(jù)庫(kù)管理員身份連接數(shù)據(jù)庫(kù)
在上面的基礎(chǔ)上輸入命令
connect
sys/sys123
as
sysdba
因?yàn)橐?/p>
數(shù)據(jù)庫(kù)管理員身份
登錄可以
安裝數(shù)據(jù)庫(kù)
啟動(dòng)實(shí)例
將文本初始化參數(shù)文件pfile轉(zhuǎn)化為二進(jìn)制初始化參數(shù)文件spfile
因?yàn)閿?shù)據(jù)庫(kù)啟動(dòng)需要找到配置文件,默認(rèn)尋找二進(jìn)制文件,也可以手動(dòng)啟動(dòng)文本文件,那這一步就不需要了
輸入命令
create
spfile
from
pfile;
(將會(huì)報(bào)錯(cuò),因?yàn)槲谋疚募容^老相對(duì)于Oracle
10g),
這個(gè)時(shí)候我們需要修改配置文件initzhouyt.ora
這個(gè)時(shí)候在%ORACLE_HOME%\database文件下會(huì)生成SPFILEZHOUYT.ora文件
以nomount形式啟動(dòng)實(shí)例
命令
startup
nomount,將會(huì)出現(xiàn)錯(cuò)誤,當(dāng)我們按照提示修改文本文件以后,如果我們還是按照startup
nomount來(lái)啟動(dòng)的話,我們要生成相應(yīng)的二進(jìn)制文件來(lái)覆蓋舊的二進(jìn)制文件
并注釋%seed_control%
create
databae
創(chuàng)建數(shù)據(jù)庫(kù)
創(chuàng)建數(shù)據(jù)庫(kù)腳本
三個(gè)文件
控制文件
數(shù)據(jù)文件
重做日志文件
create
database
zhouyt
datafile
'C:\oracle\product\10.2.0\db_2\zhouyt\system_01.dbf'
size
100m
Autoextend
on
next
10m
maxsize
unlimited
sysaux
datafile
'C:\oracle\product\10.2.0\db_2\zhouyt\systemaux_01.dbf'
size
60m
Autoextend
on
next
10m
maxsize
unlimited
logfile
group
1
('C:\oracle\product\10.2.0\db_2\zhouyt\log_1_01.rdo')
size
10m,
group
2
('C:\oracle\product\10.2.0\db_2\zhouyt\log_2_01.rdo')
size
10m
character
set
zhs16gbk;
需要確保目錄文件"db_2\zhouyt"存在
生成兩個(gè)數(shù)據(jù)文件和兩個(gè)重做日志文件,那么控制文件呢?
運(yùn)行數(shù)據(jù)字典腳本
__數(shù)據(jù)庫(kù)創(chuàng)建后,系統(tǒng)會(huì)生成兩個(gè)管理員用戶sys和system
運(yùn)行3個(gè)數(shù)據(jù)字典腳本
catalog.sql
創(chuàng)建系統(tǒng)常用的數(shù)據(jù)字典視圖和同義詞
(sys登錄);
catproc.sql
建立PL/SQL功能的使用環(huán)境,還創(chuàng)建幾個(gè)PL/SQL包用于擴(kuò)展RDBMS功能
(sys登錄);
pupbld.sql
使用SQL*PLUS環(huán)境時(shí)需要
(system登錄)
在命令行輸入@
加腳本文件的絕對(duì)路徑
第二個(gè)腳本過(guò)程和第一個(gè)一樣
執(zhí)行第三個(gè)腳本需要切換到system用戶
connect
system/manager
@
C:\oracle\product\10.2.0\db_2\sqlplus\admin\pupbld.sql
創(chuàng)建scott模式
@
C:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\scott.sql
Oracle 定時(shí)執(zhí)行計(jì)劃任務(wù)
Oracle 在10g 版本以前,計(jì)劃任務(wù)用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER來(lái)替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB 提供了更強(qiáng)大的功能和更靈活的機(jī)制管理,但DBMS_JOB 包的使用相對(duì)比較簡(jiǎn)單,也基本能夠滿足定時(shí)執(zhí)行計(jì)劃任務(wù)的需求,故接下來(lái)就先看看DBMS_JOB 包的使用方法。
1. DBMS_JOB
我們可以在命令窗口輸入show parameter job_queue_processes 查看數(shù)據(jù)庫(kù)中定時(shí)任務(wù)的最多并發(fā)數(shù),一般設(shè)置為10(設(shè)置方法:alter system set job_queue_processes=10),如果設(shè)為0,那么數(shù)據(jù)庫(kù)定時(shí)作業(yè)是不會(huì)運(yùn)行的。
oracle 定時(shí)執(zhí)行job queue 的后臺(tái)進(jìn)程是SNP,要啟動(dòng)snp,首先看系統(tǒng)模式是否支持sql alter system enable restricted session;或sql alter system disenable restricted session;利用上面的命令更改系統(tǒng)的會(huì)話方式為disenable restricted,為snp 的啟動(dòng)創(chuàng)建條件.
接下來(lái)我們嘗試實(shí)現(xiàn)以下功能:每隔一分鐘自動(dòng)向job_test 表中插入當(dāng)前的系統(tǒng)時(shí)間。
1、創(chuàng)測(cè)試表
create table job_test(updatetime date);
2、創(chuàng)建JOB
variable v_job_no number;
begin
dbms_job.submit(:v_job_no, 'insert into job_test values(sysdate);', sysdate,'sysdate+1/1440');
end;
/
其中最后一個(gè)參數(shù)'sysdate+1/1440'表示時(shí)間間隔為每分鐘。其它常用的時(shí)間間隔的設(shè)置如下:
(1)如果想每天凌晨1 點(diǎn)執(zhí)行,則此參數(shù)可設(shè)置為'trunc(sysdate)+25/24';(2)如果想每周一凌晨1 點(diǎn)執(zhí)行,則此參數(shù)可設(shè)置為'trunc(next_day(sysdate,1))+25/24';
(3)如果想每月1 號(hào)凌晨1 點(diǎn)執(zhí)行,則此參數(shù)可設(shè)置為'trunc(last_day(sysdate))+25/24';
(4)如果想每季度執(zhí)行一次,則此參數(shù)可設(shè)置為'trunc(add_months(sysdate,3),'Q')+1/24';(5)如果想每半年執(zhí)行一次,則此參數(shù)可設(shè)置為'add_months(trunc(sysdate,'yyyy'),6)+1/24';(6)如果想每年執(zhí)行一次,則此參數(shù)可設(shè)置為'add_months(trunc(sysdate,'yyyy'),12)+1/24'。
select * from user_jobs;--查看當(dāng)前用戶的調(diào)度任務(wù)select * from dba_jobs_running;--查看正在執(zhí)行的調(diào)度任務(wù)select * from dba_jobs;--查看執(zhí)行完的調(diào)度任務(wù)select * from all_jobs; -- 查看數(shù)據(jù)庫(kù)系統(tǒng)所有任務(wù)實(shí)例1:
1. 創(chuàng)建測(cè)試表
create table a(a date);
2. 創(chuàng)建一個(gè)存儲(chǔ)過(guò)程
create or replace procedure test as
begin
insert into a values(sysdate);
end;
/
3. 創(chuàng)建JOB(任務(wù)計(jì)劃)
variable job1 number;
begin
dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');end;
/
--每天1440分鐘,即一分鐘運(yùn)行test存儲(chǔ)過(guò)程一次4. 運(yùn)行JOB
begin
dbms_job.run(:job1);
end;
/
5. 查看執(zhí)行結(jié)果
select to_char(a,'yyyy/mm/dd hh24:mi:ss') 時(shí)間 from a;6.刪除JOB
begin
dbms_job.remove(:job1);
end;
/
job的使用說(shuō)明:
DBMS_JOB.SUBMIT(:jobno,//job號(hào)
'your_procedure;',//要執(zhí)行的過(guò)程
trunc(sysdate)+1/24,//下次執(zhí)行時(shí)間
'trunc(sysdate)+1/24+1'//每次間隔時(shí)間
);
刪除job:dbms_job.remove(jobno);
修改要執(zhí)行的操作:job:dbms_job.what(jobno,what);修改下次執(zhí)行時(shí)間:dbms_job.next_date(job,next_date);修改間隔時(shí)間:dbms_job.interval(job,interval);停止job:dbms.broken(job,broken,nextdate);啟動(dòng)job:dbms_job.run(jobno);
例子:
VARIABLE jobno number;
begin
DBMS_JOB.SUBMIT(:jobno,
'Procdemo;',//Procdemo為過(guò)程名稱
SYSDATE, 'SYSDATE + 1/720');
commit;
end;
/
描述 Interval參數(shù)值
每天運(yùn)行一次
'SYSDATE + 1'
每小時(shí)運(yùn)行一次
'SYSDATE + 1/24'
每10分鐘運(yùn)行一次
'SYSDATE + 10/(60*24)'
每30秒運(yùn)行一次
'SYSDATE + 30/(60*24*60)'
每隔一星期運(yùn)行一次
'SYSDATE + 7'
不再運(yùn)行該任務(wù)并刪除它
NULL
每天午夜12點(diǎn)
'TRUNC(SYSDATE + 1)'
每天早上8點(diǎn)30分
'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12點(diǎn)
'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每個(gè)月第一天的午夜12點(diǎn)
'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每個(gè)季度最后一天的晚上11點(diǎn)
'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6點(diǎn)10分
'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
2. DBMS_SCHEDULER
DBMS_SCHEDULER的功能更強(qiáng)大,定義更靈活,增強(qiáng)了與系統(tǒng)的交互性??梢杂袃煞N方式來(lái)定義"計(jì)劃":
1) 使用DBMS_SCHDULER.CREATE_SCHEDULE //定義一個(gè)計(jì)劃,計(jì)劃再調(diào)用job;2) 調(diào)用DBMS_SCHDULER.CREATE_JOB //過(guò)程直接定義job例子1:用DBMS_SCHDULER.CREATE_JOBE直接創(chuàng)建jobBEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name = 'update_bb', //job的名字
job_type = 'STORED_PROCEDURE', //job的類型為“執(zhí)行存儲(chǔ)過(guò)程”
job_action = 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY', //存儲(chǔ)過(guò)程的名字start_date = '28-APR-10 07.00.00 PM Australia/Sydney', //這里把時(shí)區(qū)去掉也可以!
repeat_interval = 'FREQ=DAILY;INTERVAL=2', /* every other day */enabled =true, //啟動(dòng)該job
comments = 'My new job'); //注釋
END;
/
參數(shù)說(shuō)明:
·job_name: 顧名思義,每個(gè)job都必須有一個(gè)的名稱·schedule_name: 如果定義了計(jì)劃,在這里指定計(jì)劃的名稱·job_type: 目前支持三種類型:
·PLSQL_BLOCK : PL/SQL塊: 需要輸入完整的PL/SQL代碼;·STORED_PROCEDURE : 存儲(chǔ)過(guò)程: 需要指定存儲(chǔ)過(guò)程的名字;·EXECUTABLE: 外部程序: (外部程序可以是一個(gè)shell腳本,也可以是操作系統(tǒng)級(jí)別的指令). 需要輸入script的名稱或者操作系統(tǒng)的指令名·enabled: 上面已經(jīng)說(shuō)過(guò)了,指定job創(chuàng)建完畢是否自動(dòng)激活·comments: 對(duì)于job的簡(jiǎn)單說(shuō)明
例子2:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name = 'zbb_job3',
job_type = 'PLSQL_BLOCK', //job的類型是執(zhí)行sql語(yǔ)句job_action = 'insert into bb values(1,sysdate);',start_date = sysdate,
repeat_interval = 'freq = minutely; interval=1', //每分鐘執(zhí)行一次enabled = true,
comments = 'my love');
END;
/
注意: enabled 默認(rèn)為false,oracle不會(huì)運(yùn)行此job,所有我們需要enable它SQL exec dbms_scheduler.enable ('zbb_job3');例子3:使用DBMS_SCHDULER.CREATE_SCHEDULE
建立 scheduler(控制時(shí)間和頻率),然后給它添加幾個(gè)jobs(動(dòng)作)!
BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE ( //創(chuàng)建計(jì)劃任務(wù)schedule_name = 'zbb_schedule',
repeat_interval = 'FREQ=MINUTELY; INTERVAL=5', //執(zhí)行間隔:每5分鐘comments = 'Every 5 MINUTS');
END;
/
接下來(lái)往“zbb_schedule”里添加一個(gè)job “zbb_job2”:
BEGIN
DBMS_SCHEDULER.CREATE_JOB ( //創(chuàng)建job 并把它加入到scheduler里面job_name = 'zbb_job2',
job_type = 'PLSQL_BLOCK',
job_action = 'insert into bb values(1,sysdate);',schedule_name = 'ZBB_SCHEDULE');
END;
/
再往“zbb_schedule”里添加一個(gè)job “zbb_job3”:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name = 'zbb_job3',
job_type = 'PLSQL_BLOCK',
job_action = 'insert into bb values(1,sysdate);',schedule_name = 'ZBB_SCHEDULE');
END;
/
運(yùn)行“select job_name,schedule_name from user_scheduler_jobs;”可以查看到所有的job。
也可以將“zbb_job1” 加入到 “zbb_schedule”
SQL begin
2 dbms_scheduler.SET_ATTRIBUTE( //注意這里執(zhí)行的是修改屬性的過(guò)程3 name = 'zbb_job1',
4 attribute = 'schedule_name',
5 value = 'ZBB_SCHEDULE');
6 end;
7 /
刪除 job 及 scheduler:
SQL BEGIN
DBMS_SCHEDULER.DROP_JOB ( //刪除job;多個(gè)job間用逗號(hào)隔開job_name = 'zbb_job2,zbb_job3',
force = TRUE);
END;
/
如何刪除scheduler:
BEGIN
DBMS_SCHEDULER.DROP_SCHEDULE (
schedule_name = 'zbb_schedule',
force = true ); // 設(shè)為true 強(qiáng)制;false。
END;
/
如何修改job的屬性(frequency:頻率):
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE (
name = 'zbb_job1',
attribute = 'repeat_interval',
value = 'FREQ=DAILY'); //每天執(zhí)行一次
END;
/
jobs創(chuàng)建時(shí)為“disabled”狀態(tài)。我們必須手動(dòng)“enable”它:
BEGIN
DBMS_SCHEDULER.ENABLE ('job1, job2, job3, sys.jobclass1, sys.jobclass2, sys.jobclass3'); /* sys.jobclass1下的所有jobs都會(huì)被enable */END;/END;
/
查看job的狀態(tài):
SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'MY_EMP_JOB1';查看Job Logs:
SELECT JOB_NAME, OPERATION, OWNER FROM DBA_SCHEDULER_JOB_LOG;查看Job 運(yùn)行的詳細(xì)情況:
select log_id, job_name, status, to_char(log_date, 'DD-MON-YYYY HH24:MI') log_date from dba_scheduler_job_run_detailswhere job_name = 'MY_JOB14';如何管理計(jì)劃任務(wù)的權(quán)限:
GRANT SCHEDULER_ADMIN TO username;GRANT CREATE JOB TO scott;GRANT ALTER myjob1 TO scott;GRANT MANAGE SCHEDULER TO adam;PLSQL舉例如下:
begin dbms_scheduler.create_job ( job_name = '測(cè)試', job_type = 'PLSQL_BLOCK', job_action = 'insert into job_test values(sysdate);', start_date = sysdate, end_date = add_months(sysdate,12000), repeat_interval = 'FREQ=MINUTELY; INTERVAL=1', enabled = true,comments = '定時(shí)執(zhí)行計(jì)劃任務(wù)' );
end;
以上代碼可以通過(guò)在PLSQL Developer中新建Jobs輕松設(shè)定:
參數(shù)含義如下:
?JOB_NAME :指定任務(wù)的名稱,必選值,注意要確保指定的名稱唯一。
?JOB_TYPE :任務(wù)執(zhí)行的操作類型,必選值,有下列幾個(gè)可選值:
?PLSQL_BLOCK :表示任務(wù)執(zhí)行的是一個(gè)PL/SQL匿名塊。
?STORED_PROCEDURE :表示任務(wù)執(zhí)行的是ORACLE過(guò)程(含PL/SQL PROCEDURE和JAVA PROCEDURE)。
?EXECUTABLE :表示任務(wù)執(zhí)行的是一個(gè)外部程序,比如說(shuō)操作系統(tǒng)命令。
?CHAIN :表示任務(wù)執(zhí)行的是一個(gè)CHAIN。
?JOB_ACTION :任務(wù)執(zhí)行的操作,必選值,應(yīng)與JOB_TYPE類型中指定的參數(shù)相匹配。比如說(shuō)對(duì)于PL/SQL匿名塊,此處就可以放置PL/SQL塊的具體代表,類似DECLARE .. BEGIN ..END這類;如果是ORACLE過(guò)程,那么此處應(yīng)該指定具體的過(guò)程名,注意由于任務(wù)執(zhí)行,即使過(guò)程中有OUT之類參數(shù),實(shí)際執(zhí)行時(shí)也不會(huì)有輸出的。
?START_DATE :指定任務(wù)初次執(zhí)行的時(shí)間,本參數(shù)可為空,當(dāng)為空時(shí),表示任務(wù)立刻執(zhí)行,效果等同于指定該參數(shù)值為SYSDATE。
?REPEAT_INTERVAL :指定任務(wù)執(zhí)行的頻率,比如多長(zhǎng)時(shí)間會(huì)被觸發(fā)再次執(zhí)行。本參數(shù)也可以為空,如果為空的話,就表示當(dāng)前設(shè)定的任務(wù)只執(zhí)行一次。 REPEAT_INTERVAL參數(shù)需要好好說(shuō)說(shuō),REPEAT_INTERVAL
假設(shè):oracle安裝目錄 D:\oracle
數(shù)據(jù)庫(kù)的實(shí)例名 XXX
內(nèi)存配置步驟:
1)打開dos,運(yùn)行
D:\oracle sqlplus /nolog
SQL connect / as sysdba
SQL create pfile from spfile;
SQL shutdown immediate
SQL exit
2)打開文件D:\oracle\ora92\database\INITXXX.ORA
修改以下值并保存:
*.db_cache_size=819m
*.shared_pool_size=256m
*.pga_aggregate_target=256m
*.large_pool_size=64m
*.java_pool_size=64m
3)刪除文件D:\oracle\ora92\database\SPFILEXXX.ORA
4)打開dos,運(yùn)行
D:\oracle sqlplus /nolog
SQL connect / as sysdba
SQL startup
SQL create spfile from pfile;
SQL exit
一個(gè)Oracle實(shí)例(Oracle Instance)有一系列的后臺(tái)進(jìn)程(Backguound Processes)和內(nèi)存結(jié)構(gòu)(Memory Structures)組成。為了能訪問(wèn)數(shù)據(jù)庫(kù),必須啟動(dòng)實(shí)例。
對(duì)于第一次接觸“實(shí)例”和“數(shù)據(jù)庫(kù)”的朋友來(lái)說(shuō),容易把二者混淆。實(shí)例是“內(nèi)存”和“后臺(tái)進(jìn)程”的集合。數(shù)據(jù)庫(kù)是數(shù)據(jù)的物理存儲(chǔ)。特別注意,一個(gè)實(shí)例可以用于一個(gè)數(shù)據(jù)庫(kù),多個(gè)實(shí)例也可以同時(shí)用于一個(gè)數(shù)據(jù)庫(kù),實(shí)例和數(shù)據(jù)庫(kù)的關(guān)系是一對(duì)多的關(guān)系。
舉個(gè)例子,如果把數(shù)據(jù)庫(kù)比作一架飛機(jī),實(shí)例就是飛機(jī)的發(fā)動(dòng)機(jī)。那么,一臺(tái)發(fā)動(dòng)機(jī)可以驅(qū)動(dòng)飛機(jī),兩臺(tái)發(fā)動(dòng)機(jī)也可以同時(shí)驅(qū)動(dòng)一架飛機(jī)。
多個(gè)“實(shí)例”同時(shí)驅(qū)動(dòng)一個(gè)“數(shù)據(jù)庫(kù)”的架構(gòu)叫“集群(Oracle real application clusters,簡(jiǎn)稱RAC)”,這是Oracle的一種高端應(yīng)用,如果結(jié)合磁盤陣列的保護(hù)機(jī)制,RAC能最大限度的保護(hù)我們的應(yīng)用不間斷運(yùn)行,數(shù)據(jù)不丟失。
使用plsql時(shí)需要用到32位的客戶端,需要在客戶端里配置tnsnames.ora文件。
windows上沒(méi)有alias,如果想sqlplus直接連到數(shù)據(jù)庫(kù)是不行的,不過(guò)可以在C:\Windows下寫一個(gè)文件,名字叫做sql.bat,內(nèi)容為sqlplus 用戶名/密碼@orcl,那在運(yùn)行中輸入sql就可以直接進(jìn)入數(shù)據(jù)庫(kù)
就是一個(gè)表空間里面有N個(gè)用戶表,系統(tǒng)表,N個(gè)存儲(chǔ)過(guò)程和N個(gè)視圖這樣子? 一個(gè)數(shù)據(jù)庫(kù)實(shí)例就相當(dāng)于一個(gè)sql server(下面簡(jiǎn)稱mss)的一個(gè)服務(wù),
假設(shè)你的機(jī)器叫做AA,安裝mss后,和默認(rèn)建立一個(gè)服務(wù)名叫做aa,如果再安裝一次mss,會(huì)提示你是否使用現(xiàn)有的服務(wù)名。Oracle的一個(gè)實(shí)例可以認(rèn)為是一個(gè)服務(wù)。
表空間是一個(gè)虛擬概念,是一組文件的簡(jiǎn)稱,例如我的Oracle有一個(gè)表空間myspace,用來(lái)存放臨時(shí)的數(shù)據(jù),我可以給temp指定三個(gè)文件,c:myspace.ora d:myspace1.ora e:myspace2.ora 我見一個(gè)表,設(shè)置這個(gè)表的數(shù)據(jù)存放在myspace上,如果我向表中插入1000行數(shù)據(jù),可能會(huì)被均勻的存放到myspace*.ora中。