--創(chuàng)建包頭
目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、南陵網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
CREATE OR REPLACE PACKAGE ELS.pkg_proxy
AS
TYPE cursortype IS REF CURSOR;
-- 得到交接確認(rèn)代理人數(shù)據(jù)
PROCEDURE get_proxy_info (
v_emp_no IN VARCHAR2, --當(dāng)前登錄用戶
v_to_emp_no IN VARCHAR2, --代理人工號(hào)
v_to_emp_name IN VARCHAR2, --代理人姓名
v_proxy_date1 IN VARCHAR2, --代理開(kāi)始時(shí)間: yyyy/mm/dd
v_proxy_date2 IN VARCHAR2, --代理結(jié)束時(shí)間: yyyy/mm/dd
v_from_emp_no IN VARCHAR2, --被代理人工號(hào)
v_from_emp_name IN VARCHAR2, --被代理人姓名
p_cursor OUT cursortype
);
END pkg_proxy;
--創(chuàng)建包頭
CREATE OR REPLACE PACKAGE BODY ELS.pkg_proxy
AS
-- 得到交接確認(rèn)代理人數(shù)據(jù)
PROCEDURE get_proxy_info (
v_emp_no IN VARCHAR2, --當(dāng)前登錄用戶
v_to_emp_no IN VARCHAR2, --代理人工號(hào)
v_to_emp_name IN VARCHAR2, --代理人姓名
v_proxy_date1 IN VARCHAR2, --代理開(kāi)始時(shí)間: yyyy/mm/dd
v_proxy_date2 IN VARCHAR2, --代理結(jié)束時(shí)間: yyyy/mm/dd
v_from_emp_no IN VARCHAR2, --被代理人工號(hào)
v_from_emp_name IN VARCHAR2, --被代理人姓名
p_cursor OUT cursortype
)
AS
BEGIN
OPEN p_cursor FOR
WITH v AS
(
--查找當(dāng)前登錄人是否為管理員
SELECT *
FROM employee
WHERE dept_id IN (
SELECT ID
FROM department
START WITH ID =
(SELECT dept_id
FROM employee
WHERE emp_no = v_emp_no
AND is_admin IN (
SELECT r_value
FROM role_conditions
WHERE r_key =
'ProxySearch')
UNION
SELECT dept_id
FROM employee_add
WHERE emp_no = v_emp_no
AND is_admin IN (
SELECT r_value
FROM role_conditions
WHERE r_key =
'ProxySearch'))
CONNECT BY PRIOR ID = parent_id)
UNION
SELECT *
FROM employee
WHERE emp_no = v_emp_no)
SELECT DISTINCT *
FROM (SELECT a.currentuser, a.toagrentuser,
DECODE (a.agent_type,
'A', '當(dāng)前交接確認(rèn)代理',
'B', '將來(lái)離職簽核代理',
'C', '當(dāng)前離職簽核代理',
'D', '將來(lái)交接確認(rèn)代理',
''
) agent_type,
a.from_date, a.TO_DATE,
DECODE
(a.to_date1,
'', '無(wú)',
TO_CHAR (a.TO_DATE,
'yyyy/mm/dd am hh:mi:ss'
)
) to_date1,
a.flowinfo, b.emp_cname AS currentusername,
b1.emp_cname AS toagrentusername, workitem
FROM (
--當(dāng)前交接確認(rèn)代理
SELECT SUBSTR
(x.currentuser,
1,
INSTR (x.currentuser, '(') - 1
) AS currentuser,
SUBSTR
(x.toagrentuser,
1,
INSTR (x.toagrentuser, '(') - 1
) AS toagrentuser,
'A' AS agent_type,
x.create_date AS from_date,
x.create_date AS TO_DATE,
NULL AS to_date1, x.workid,
NULL AS formid, y.NAME workitem,
(SELECT e.emp_no
|| '('
|| e.emp_cname
|| ')'
FROM employee e
WHERE e.emp_no = y.emp_no)
AS flowinfo
FROM currentworkagrent x,
worktransferitem_m y
WHERE x.workid = y.ID
UNION ALL
--將來(lái)交接確認(rèn)代理
SELECT SUBSTR
(currentuser,
1,
INSTR (currentuser, '(') - 1
) AS currentuser,
SUBSTR
(toagrent,
1,
INSTR (toagrent, '(') - 1
) AS toagrent,
'D' AS agent_type, starttime,
endtime, endtime AS to_date1, NULL,
NULL, NULL, NULL
FROM futureagrent) a,
employee b,
employee b1
WHERE a.currentuser = b.emp_no(+)
AND a.toagrentuser = b1.emp_no(+)) a
WHERE currentuser IN (SELECT emp_no
FROM v)
AND (currentuser = v_from_emp_no OR v_from_emp_no IS NULL
)
AND ( currentusername = v_from_emp_name
OR v_from_emp_name IS NULL
)
AND (toagrentuser = v_to_emp_no OR v_to_emp_no IS NULL)
AND ( toagrentusername = v_to_emp_name
OR v_to_emp_name IS NULL
)
AND from_date =
TO_DATE (NVL (v_proxy_date2, '2099/12/31'),
'yyyy/mm/dd'
)
AND TO_DATE =
TO_DATE (NVL (v_proxy_date1, '1000/12/31'),
'yyyy/mm/dd'
)
ORDER BY a.agent_type, a.from_date DESC;
END;
END pkg_proxy;
1.配置hostname
[root@oracledb ~]#hostnamectl set-hostname oracledb
[root@oracledb ~]#echo " 10.100.1.10 oracledb" /etc/hosts
2.關(guān)閉selinux和防火墻
[root@oracledb ~]#sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracledb ~]#setenforce 0
[root@oracledb ~]#systemctl stop firewalld
[root@oracledb ~]#systemctl disable firewalld
[root@oracledb ~]#systemctl status firewalld
3.下載Oracle軟件包 且上傳到服務(wù)器上,進(jìn)行解壓縮
建議使用winSCP工具進(jìn)行上傳到服務(wù)器的/opt目錄下
[root@oracledb ~]# ls -lh /opt/
-rw-r--r-- 1 root root 1.2G Mar 30 16:12 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 root root 1.1G Mar 30 16:11 linux.x64_11gR2_database_2of2.zip
4.安裝oracle環(huán)境所需要的依賴包-配置YUM源
安裝依賴包之前,一定要設(shè)置好服務(wù)器上的安裝源,原因是:可以在沒(méi)有互聯(lián)網(wǎng)的時(shí)候安裝服務(wù)所需依賴包;常用的安裝源有兩種方式:
(1) 配置本地yum源
新建配置文件vi /etc/yum.repos.d/localsource.repo輸入如下內(nèi)容:
[localsource]
name=localsource
baseurl=
enabled=1
gpgcheck=0
(2) 生成本地yum 緩存
注意:從Oracle 11g 11.2.0.2版本開(kāi)始,在Linux x86_64上安裝時(shí),只需要安裝64位的軟件包,但是,對(duì)于11.2.0.2之前的任何Oracle database 11g,下表中列出的32位和64位的安裝包都必須安裝
5.安裝oracle環(huán)境所需要的依賴包-安裝依賴包
(1)安裝依賴包
[root@oracledb ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel zlib zlib-devel pcre-devel unzip
(2)安裝完成后,檢查依賴是否全部安裝成功
[root@oracledb ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel zlib zlib-devel pcre-devel unzip | grep "not installed"
(3)創(chuàng)建所需的用戶組和用戶
如果要安裝Oracle數(shù)據(jù)庫(kù),通常需要以下本地操作系統(tǒng)用戶組和用戶:
Oracle inventory組(通常為 oinstall)
OSDBA組 (通常為 dba)
OSOPER組 (通常為 oper)
Oracle軟件所有者(通常為 oracle)
創(chuàng)建用戶組和用戶:
[root@oracledb ~]# groupadd oinstall
[root@oracledb ~]# groupadd dba
[root@oracledb ~]# groupadd oper
[root@oracledb ~]# useradd -g oinstall -G dba oracle
(4)修改oracle用戶密碼:建議密碼配置為字符+數(shù)字+特殊字符
[root@oracledb ~]# passwd oracle
6.配置內(nèi)核參數(shù)和資源限制
(1)編輯配置文件vi /etc/sysctl.conf添加如下參數(shù):
vm.max_map_count = 655360
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648 ###最小值: 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
注意:如果系統(tǒng)中某個(gè)參數(shù)高于上面的參數(shù)的值 ,保留較大的值,上面的數(shù)值只是官方要求的最小值,可以根據(jù)系統(tǒng)調(diào)整數(shù)值,以優(yōu)化系統(tǒng)性能
(2)使內(nèi)核參數(shù)生效
[root@oracledb ~]# sysctl -p
7.創(chuàng)建oracle安裝目錄
如下目錄,根據(jù)自己的實(shí)際情況可做修改:
[root@oracledb ~]# mkdir -p /data/app/oracle/product/11.2.0
[root@oracledb ~]# cd /data/app/oracle/
[root@oracledb oracle]# mkdir oradata inventory fast_recovery_area
[root@oracledb ~]# chown -R oracle:oinstall /data/app/oracle
[root@oracledb ~]# chmod -R 775 /data/app/oracle
8.配置oracle用戶環(huán)境變量
編輯配置文件vi /home/oracle/.bash_profile添加如下內(nèi)容:
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
9. 解壓下載好的兩個(gè)Oracle數(shù)據(jù)庫(kù)文件
[root@oracledb ~]# cd /opt
[root@oracledb ~]# unzip linux.x64_11gR2_database_1of2.zip -d /data
[root@oracledb ~]# unzip linux.x64_11gR2_database_2of2.zip -d /data
10. 編輯靜默安裝響應(yīng)文件
(1)切換到oracle用戶執(zhí)行
[root@oracledb ~]# su - oracle
(2)切換到響應(yīng)文件的目錄下
[oracle@oracledb ~]$ cp -R /data/database/response/ .
[oracle@oracledb ~]$ cd response/
[oracle@oracledb response]$ ls
dbca.rsp db_install.rsp netca.rsp
11.修改配置文件:vi /home/oracle/response/db_install.rsp,修改以下變量的值
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_BASE=/data/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
12. 開(kāi)始靜默安裝Oracle 11g
(1)開(kāi)始安裝oracle數(shù)據(jù)庫(kù)
[oracle@oracledb ~]$ cd /data/database
[oracle@oracledb ~]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
注意:安裝期間可以使用tail命令查看oracle的安裝日志,且日志文件名稱是根
據(jù)自己的實(shí)際執(zhí)行時(shí)間確定的,安裝日志文件會(huì)在安裝時(shí)提示,需要等待3分鐘左右,注意不要停止運(yùn)行;安裝完成后有如下提示,如果有類似如下提示,說(shuō)明安裝完成。
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run
/data/app/oraInventory/orainstRoot.sh
/data/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software.
13.使用 root用戶執(zhí)行腳本
(1)切換到root用戶執(zhí)行
[root@oracledb ~]# su - root
(2)執(zhí)行兩個(gè)用戶腳本
[root@oracledb ~]# sh /data/app/oracle/inventory/orainstRoot.sh
[root@oracledb ~]# sh /data/app/oracle/product/11.2.0/root.sh
14.配置監(jiān)聽(tīng)程序
(1)切換到oracle用戶執(zhí)行(建議退出重進(jìn)oracle用戶)
[root@oracledb ~]# su - oracle
(2)配置監(jiān)聽(tīng),查看輸出結(jié)果
[oracle@oracledb ~]$ netca /silent /responsefile /home/oracle/response/netca.rsp
(3)查看監(jiān)聽(tīng)服務(wù)狀態(tài),若沒(méi)啟動(dòng)需要啟動(dòng)
[oracle@oracledb ~]$ lsnrctl status
[oracle@oracledb ~]$ lsnrctl start
查看結(jié)果:
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /data/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/app/oracle/product/11.2.0/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
(4)查看監(jiān)聽(tīng)端口
[oracle@oracledb ~]$ netstat -tnpl | grep 1521
15.靜默創(chuàng)建數(shù)據(jù)庫(kù)
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/app/oracle/oradata
RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = " 6552 "
##其中TOTALMEMORY = " 6552 " 為6552 MB,物理內(nèi)存8G*80%
(2)切換到oracle用戶執(zhí)行
[root@oracledb ~]# su - oracle
(3)執(zhí)行靜默建庫(kù)
[oracle@oracledb ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
執(zhí)行過(guò)程如下:
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/data/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.
(4)查看進(jìn)程
[oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
(5)再次查看監(jiān)聽(tīng)狀態(tài)進(jìn)行確認(rèn)
[oracle@oracledb ~]$ lsnrctl status
結(jié)果顯示:
The command completed successfully
16.至此數(shù)據(jù)庫(kù)就安裝成功了,下面我們登錄下數(shù)據(jù)庫(kù)
(1)切換到oracle用戶執(zhí)行
[root@oracledb ~]# su - oracle
(2)登錄數(shù)據(jù)庫(kù)
[oracle@oracledb ~]$ sqlplus / as sysdba
(3)查詢實(shí)例狀態(tài)
SQLselect status from v$instance;
(4)查看數(shù)據(jù)庫(kù)版本
SQL select * from v$version;
(5)激活scott用戶
SQLalter user scott account unlock;
SQLalter user scott identified by tiger;
SQLselect username,account_status from dba_users;
17.設(shè)置Oracle開(kāi)機(jī)啟動(dòng)
(1)修改配置文件vi /data/app/oracle/product/11.2.0/bin/dbstart 修改如下內(nèi)容:
將腳本中的ORACLE_HOME_LISTNER=$1,修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
(2)修改配置文件vi /data/app/oracle/product/11.2.0/bin/dbshut 修改如下內(nèi)容:
將腳本中的ORACLE_HOME_LISTNER=$1,修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
(3)修改配置文件 vi /etc/oratab修改如下內(nèi)容,
orcl:/data/app/oracle/product/11.2.0:Y
(4)新建文件:vi /etc/rc.d/init.d/oracle 注意:建議全部復(fù)制腳本內(nèi)容
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
start)
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n #34;Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
stop)
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n #34;Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
restart)
$0 stop
$0 start
;;
status)
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
(5)給 /etc/init.d/oracle添加執(zhí)行權(quán)限
[root@oracledb ~]# chmod +x /etc/init.d/oracle
(6)開(kāi)機(jī)啟動(dòng)oracle
[root@oracledb ~]# chkconfig oracle on
(7)給啟動(dòng)文件加權(quán)限
[root@oracledb ~]# cd /data/app/oracle/product/11.2.0/bin/
[root@oracledb bin]# chmod 6751 oracle
[root@oracledb bin]# cd /var/tmp
[root@oracledb tmp]# chown -R oracle:oinstall .oracle
(8)重啟測(cè)試
[root@oracledb ~]# reboot
(9)切換到oracle用戶登錄狀態(tài)下
[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ sqlplus / as sysdba
(10)解除鎖定
SQL alter user SYSTEM account unlock;
(11)這時(shí)候就可以用Navicat連接了
SQL conn;
用戶名:SYSTEM
密碼:oracle
如果不能正確連接,改下密碼試試
alter user system identified by 新密碼
[root@oracledb ~]# mkdir -p /data/szzt
[root@oracledb ~]# cd /data/
[root@oracledb data]# chown oracle:oinstall -R szzt
[root@oracledb data]# ll
total 0
drwxr-xr-x 3 root root 20 Apr 8 21:14 app
drwxr-xr-x 8 root root 128 Aug 21 2009 database
drwxr-xr-x 2 oracle oinstall 6 Apr 14 16:17 szzt
[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ sqlplus / as sysdba
SQL conn cshi
Enter password: 登錄失敗
Connected.
SQL create temporary tablespace DB_DATA_TMP tempfile'/data/szzt/DB_DATA_TMP.dbf' size 500m autoextend on next 100m maxsize 10240m extent management local;
顯示結(jié)果:
Tablespace created.
SQL create tablespace DB_DATA logging datafile'/data/szzt/DB_DATA.dbf' size 2048m autoextend on next 100m maxsize 10240m extent management local;
顯示結(jié)果:
Tablespace created.
SQL create user ceshi identified by ceshi default tablespace DB_DATA temporary tablespace DB_DATA_TMP;
顯示結(jié)果:
User created.
SQL grant dba to ceshi;
顯示結(jié)果:
Grant succeeded.
SQL conn ceshi ###用戶名和密碼一樣,此時(shí)登錄成功
[oracle@oracledb ~]$ cd /data/app/oracle/product/11.2.0/bin/
注意:數(shù)據(jù)庫(kù)導(dǎo)出操作是在 源服務(wù)器 上進(jìn)行
[oracle@oracledb bin]$ exp 用戶名/密碼@ IP地址 /orcl file =/data/szzt/ceshi.dmp owner='用戶名'
Export terminated successfully without warnings.
注意:數(shù)據(jù)庫(kù)導(dǎo)入操作是在 目標(biāo)服務(wù)器 上進(jìn)行
[oracle@oracledb bin]$ imp ceshi/ceshi@ 10.100.1.10 /orcl file=/data/szzt/ceshi.dmp fromuser=ceshi touser=ceshi
顯示結(jié)果:可以看到導(dǎo)入的表過(guò)程(10.100.1.10是自己的目標(biāo)數(shù)據(jù)庫(kù)服務(wù)器)
Import terminated successfully without warnings .
(1)、數(shù)據(jù)導(dǎo)入完畢后,我們可以使用DBeaver對(duì)數(shù)據(jù)庫(kù)進(jìn)行遠(yuǎn)程管理
(2)、測(cè)試連接,沒(méi)問(wèn)題后完成新建
(3)、連接上來(lái)后,我們就可以使用工具來(lái)進(jìn)行管理數(shù)據(jù)庫(kù)
好像不行,都是用命令創(chuàng)建,創(chuàng)建如下:
在Oracle中建庫(kù),通常有 兩種方法。一是使用Oracle的建庫(kù)工且DBCA,這是一個(gè)圖形界面工且,使用起來(lái)方便且很容易理解,因?yàn)樗慕缑嬗押?、美觀,而且提示也比較齊全。在 Windows系統(tǒng)中,這個(gè)工具可以在Oracle程序組中打開(kāi)(”開(kāi)始”—“程序”—“ Oracle - OraDb10g_home1”—“ Configuration and Migration Tools”—“ Database Configuration Assistant”),也可以在命令行(”開(kāi)始”—“運(yùn)行”—“cmd”)工具中直接輸入dbca來(lái)打開(kāi)。另一種方法就是手工建庫(kù),這也就是下面所要講的內(nèi)容。
手工建庫(kù)比起使用DBCA建庫(kù)來(lái)說(shuō),是比較麻煩的,但是如果我們學(xué)好了手工建庫(kù)的話,就可以使我們更好地理解Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)。手工建庫(kù)須要經(jīng)過(guò)幾個(gè)步驟,每一個(gè)步驟都非常關(guān)鍵。它包括:
1、 創(chuàng)建必要的相關(guān)目錄
2、 創(chuàng)建初始化參數(shù)文件
3、 設(shè)置環(huán)境變量Oracle_sid
4、 創(chuàng)建實(shí)例
5、 創(chuàng)建口令文件
6、 啟動(dòng)數(shù)據(jù)庫(kù)到nomount(實(shí)例)狀態(tài)
7、 執(zhí)行建庫(kù)腳本
8、 執(zhí)行catalog腳步本創(chuàng)建數(shù)據(jù)字典
9、 執(zhí)行catproc創(chuàng)建package包
10、 執(zhí)行pupbld
11、 由初始化參數(shù)文件創(chuàng)建spfile文件
12、 執(zhí)行scott腳本創(chuàng)建scott模式
做完了以上的步驟之后就可以使用“SQLalter database open;”打開(kāi)數(shù)據(jù)庫(kù)正常的使用了。下面,我將具體地把以上的幾個(gè)步驟用實(shí)驗(yàn)展開(kāi)來(lái)講。
實(shí)驗(yàn)系統(tǒng)平臺(tái):Windows Server 2000 數(shù)據(jù)庫(kù)系統(tǒng)版本:Oracle Database 10G
Oracle的安裝路徑:D盤 創(chuàng)建的數(shù)據(jù)庫(kù)名稱:book
1、打開(kāi)命令行工具,創(chuàng)建必要有相關(guān)目錄
C:\mkdir D:\oracle\product\10.1.0\admin\book
C:\mkdir D:\oracle\product\10.1.0\admin\book\bdump
C:\mkdir D:\oracle\product\10.1.0\admin\book\udump
C:\mkdir D:\oracle\product\10.1.0\admin\book\cdump
C:\mkdir D:\oracle\product\10.1.0\admin\book\pfile
C:\mkdir D:\oracle\product\10.1.0\admin\book\create
C:\mkdir D:\oracle\product\10.1.0\oradata\book
上面創(chuàng)建目錄的過(guò)程也可以在Windows的圖形界面中去創(chuàng)建。其中 D:\oracle\product\10.1.0\admin\book目錄下的幾個(gè)子目錄主要用于存放數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中的跟蹤信息。最重要的兩上子目 錄是bdump和udump目錄,bdump目錄存放的是數(shù)據(jù)庫(kù)動(dòng)行過(guò)程中的各個(gè)后臺(tái)進(jìn)程的跟蹤信息,當(dāng)中alert文件是警告文件,其文件名稱為 alert_book.log,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題時(shí),首先就可以去查看此文件以找出原因,手工創(chuàng)建過(guò)程中出現(xiàn)的各種問(wèn)題往往也可以通過(guò)查看這個(gè)文件找到原 因。Udump目錄存放和特定會(huì)話相關(guān)的跟蹤信息。D:\oracle\product\10.1.0\oradata\book目錄存放各種數(shù)據(jù)庫(kù)文 件,包括控制文件、數(shù)據(jù)文件、重做日志文件。
2、創(chuàng)建初始化參數(shù)文件
數(shù)據(jù)庫(kù)系統(tǒng)啟動(dòng)時(shí)須要用初始化參數(shù)文件的設(shè)置分配內(nèi)存、啟動(dòng)必要的后臺(tái)進(jìn)程的。因此,初始化參數(shù)文件創(chuàng)建的是否正確、參數(shù)設(shè)置是否正確關(guān)系著整個(gè)建庫(kù)的“命運(yùn)”。
創(chuàng)建初始化參數(shù)文件可以通過(guò)拷貝現(xiàn)在的初始化參數(shù)文件并將其做適當(dāng)?shù)男薷募纯?,從?不必要用手工去一句一句地寫出來(lái),因?yàn)槌跏蓟瘏?shù)文件的結(jié)構(gòu)體系基本上都是一樣的。在我們安裝Oracle的時(shí)候,系統(tǒng)已經(jīng)為我們安裝了一個(gè)名為orcl 的數(shù)據(jù)庫(kù),于是我們可以從它那里得到一份初始化參數(shù)文件。打開(kāi)D:\oracle\product\10.1.0\admin\orcl\pfile,找 到init.ora文件,把它拷貝到D:\oracle\product\10.1.0\bd_1\databse下,并將其改名為 initbook.ora。接著用記事本的方式打開(kāi)initbook.ora,修改以下的內(nèi)容:
db_domain=""
db_name=book
control_files=("D:\oracle\product\10.1.0\oradata\book\control01.ctl", "D:\oracle\product\10.1.0\oradata\book\control02.ctl", "D:\oracle\product\10.1.0\oradata\book\control03.ctl")
undo_management=AUTO
undo_tablespace=UNDOTBS1 ――注意此處的“UNDOTBS1”要和建庫(kù)腳步本中對(duì)應(yīng)
background_dump_dest=D:\oracle\product\10.1.0\admin\book\bdump
core_dump_dest=D:\oracle\product\10.1.0\admin\book\cdump
user_dump_dest=D:\oracle\product\10.1.0\admin\book\udump
3、打開(kāi)命令行,設(shè)置環(huán)境變量oracle_sid
C:\set oracle_sid=book
設(shè)置環(huán)境變量的目地是在默認(rèn)的情況下,指定命令行中所操作的數(shù)據(jù)庫(kù)實(shí)例是book。
4、創(chuàng)建實(shí)例(即后臺(tái)控制服務(wù))
C:\oradim –new –sid book
oradim是創(chuàng)建實(shí)例的工具程序名稱,-new表明執(zhí)行新建實(shí)例,-delete表明執(zhí)行刪掉實(shí)例,-sid指定害例的名稱。
5、創(chuàng)建口令文件
C:\orapwd file=D:\oracle\product\10.1.0\db_1\database\pwdbook.ora password=bookstore entries=2
orapwd是創(chuàng)建口令文件的工肯程序各稱,file參數(shù)指定口令文件所在的目錄和文件名稱,password參數(shù)指定sys用戶的口令,entries參數(shù)指定數(shù)據(jù)庫(kù)擁用DBA權(quán)限的用戶的個(gè)數(shù),當(dāng)然還有一個(gè)force參數(shù),相信您不指即明,這里就不再細(xì)述。
請(qǐng)注意,這里的命令要一行輸入,中間不得換行,否則會(huì)出現(xiàn)不必要的錯(cuò)誤。
口令文件是專門存放sys用戶的口令,因?yàn)閟ys用戶要負(fù)責(zé)建庫(kù)、啟動(dòng)數(shù)據(jù)庫(kù)、關(guān)閉數(shù)據(jù)庫(kù)等特殊任務(wù),把以sys用戶的中令單獨(dú)存放于口令文件中,這樣數(shù)據(jù)庫(kù)末打開(kāi)時(shí)也能進(jìn)行口令驗(yàn)證。
6、啟動(dòng)數(shù)據(jù)庫(kù)到nomount(實(shí)例)狀態(tài)
C:\sqlplus /nolog
SQL*Plus:Release 10.1.0.2.0 - Production on 星期三 6月 29 23:09:35 2005
Copyright 1982,2004,Oracle. All rights reserved.
SQLconnect sys/bookstore as sysdba ---這里是用sys連接數(shù)據(jù)庫(kù)
已連接到空閑例程
SQLstartup nomount
ORACLE 例程已經(jīng)啟動(dòng)。
Total System Global Area 319888364bytes
Fixed Size 453612bytes
Variable Size 209715200bytes
Database Buffers 109051904bytes
Redo Buffers 667648bytes
SQL
7、執(zhí)行建庫(kù)腳本
執(zhí)行建庫(kù)腳本,首先要有建庫(kù)的腳本。(去哪找建庫(kù)腳本呢?我又沒(méi)有?。┎挥弥?,請(qǐng)接著往下看。
得到一個(gè)符合自己要求的建庫(kù)腳本有兩種方法,一種方法是在自己的電腦上用DBCA來(lái) 建,接照它的提示一步步地去做,在做到第十二步的時(shí)候,請(qǐng)選擇“生成建庫(kù)腳本”,然后就大功告成,你就可以到相應(yīng)的目錄上去找到那個(gè)腳本并適當(dāng)?shù)匦匏憧?便用。另一種方法就是自己手工去寫一份建庫(kù)腳本,這也是這里要見(jiàn)意使用的方法,用記事本編輯如下的內(nèi)容,并將其保存為文件名任取而后綴名為(*.sql) 的SQL腳本,這里保存到E盤根本錄下且文件名稱為book.sql。
Create database book
datafile 'D:\oracle\product\10.1.0\oradata\book\system01.dbf' size 300M reuse autoextend on next 10240Kmaxsize unlimited
extent management local
sysaux datafile 'D:\oracle\product\10.1.0\oradata\book\sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:\oracle\product\10.1.0\oradata\book\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1" --請(qǐng)注意這里的undo表空間要和參數(shù)文件對(duì)應(yīng)
datafile 'D:\oracle\product\10.1.0\oradata\book\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:\oracle\product\10.1.0\oradata\book\redo01.log') size 10240K,
group 2 ('D:\oracle\product\10.1.0\oradata\book\redo02.log') size 10240K,
group 3 ('D:\oracle\product\10.1.0\oradata\book\redo03.log') size 10240K
接著就執(zhí)行剛建的建庫(kù)腳本:
SQLstart E:\book.sql
8、執(zhí)行catalog腳步本創(chuàng)建數(shù)據(jù)字典
SQLstart D:\oracle\product\10.1.0\db_1\rdbms\admin\catalog.sql
9、執(zhí)行catproc創(chuàng)建package包
SQLstart D:\oracle\product\10.1.0\db_1\rdbms\admin\catproc.sql
10、執(zhí)行pupbld
在執(zhí)行pupbld之前要把當(dāng)前用戶(sys)轉(zhuǎn)換成system,即以system賬戶連接數(shù)據(jù)庫(kù)。因?yàn)榇藬?shù)據(jù)庫(kù)是剛建的,所以system的口令是系統(tǒng)默認(rèn)的口令,即manager。你可以在數(shù)據(jù)庫(kù)建好以后再來(lái)重新設(shè)置此賬戶的口令。
SQLconnect system/manager
SQLstart D:\oracle\product\10.1.0\db_1\sqlplus\admin\pupbld.sql
11、由初始化參數(shù)文件創(chuàng)建spfile文件
SQLcreate spfile from pfile;
12、執(zhí)行scott腳本創(chuàng)建scott模式
SQLstart D:\oracle\product\10.1.0\db_1\rdbms\admin\scott.sql
13、把數(shù)據(jù)庫(kù)打開(kāi)到正常狀態(tài)
SQLalter database open;
14、以scott連接到數(shù)據(jù)庫(kù)(口令為tiger),測(cè)試新建數(shù)據(jù)庫(kù)是否可以正常運(yùn)行
至此,整個(gè)數(shù)據(jù)庫(kù)就已經(jīng)建好了。接著你就可以在此數(shù)據(jù)庫(kù)上建立自己的賬戶和表空間啦以及數(shù)據(jù)庫(kù)對(duì)象,這里就不再作更多地?cái)⑹?/p>
文章標(biāo)題:怎么建包oracle,怎么在包里建包
網(wǎng)站網(wǎng)址:http://weahome.cn/article/pheehg.html