當前位置:首頁 » 網頁前端 » 資料庫ctl腳本
擴展閱讀
怎麼清除預覽圖片的緩存 2022-11-30 14:15:11
c語言創建有序鏈表 2022-11-30 14:08:06

資料庫ctl腳本

發布時間: 2022-10-03 12:48:25

⑴ oracle 中的 *.ctl 放的什麼東西呀

.ctl是控制文件
裡面有資料庫名,資料庫創建時間,數據文件、log文件位置,表空間信息,近期的備份信息等信息,官方文檔如下
控制文件是一個很小的二進制文件,用於記錄資料庫的物理結構。一個控制文件只屬於一個資料庫。創建資料庫時,創建控制文件。當資料庫的物理結構改變的時候,Oracle會更新控制文件。用戶不能編輯控制文件,控制文件的修改由Oracle完成。
資料庫的啟動和正常運行都離不開控制文件。啟動資料庫時,Oracle從初始化參數文件中獲得控制文件的名字及位置,打開控制文件,然後從控制文件中讀取數據文件和聯機日誌文件的信息,最後打開資料庫。資料庫運行時,Oracle會修改控制文件,所以,一旦控制文件損壞,資料庫將不能正常運行。
控制文件記錄的資料庫信息如下:
資料庫名稱(Database Name)
創建資料庫的時間戳
數據文件的名字及位置
聯機日誌文件的名字及位置
表空間信息
日誌歷史記錄(Log History)
歸檔日誌的信息
備份信息
當前的日誌序列號(Log Sequence Number)
校驗點信息(Checkpoint)

⑵ 取數的shell腳本,通過判斷取.ctl文件的數量判斷是否取全數據,添加了以下的部分後就報錯,去掉就沒問題

FILE_COUNT= `ls *.ctl | wc -l`

⑶ systemctl 怎樣添加腳本到系統服務中

1.啟動nfs服務 systemctl start nfs-server.service
2.設置開機自啟動 systemctl enable nfs-server.service
3.停止開機自啟動 systemctl disable nfs-server.service
4.查看服務當前狀態 systemctl status nfs-server.service
5.重新啟動某服務 systemctl restart nfs-server.service
6.查看所有已啟動的服務 systemctl list -units --type=service
開啟防火牆22埠 iptables -I INPUT -p tcp --dport 22 -j accept
如果仍然有問題,就可能是SELinux導致的 關閉SElinux:
修改/etc/selinux/config文件中的SELINUX=」」為disabled,然後重啟。
徹底關閉防火牆: sudo systemctl status firewalld.service sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

⑷ oracle資料庫導入數據報錯

1.excle轉成csv之後,打開csv文件看看數據中有沒有title。有的話,刪掉。讓csv中只保留數據。
2.數據導入用sqlldr
先寫個ctl腳本
例如:做一個test.ctl裡面的內容是
LOAD DATA
INFILE 'D:\DB\XXX.CSV'
append INTO TABLE 表名
FIELDS TERMINATED BY ","
TRAILING NULLCOLS
(
HAISASHI_HMS INTEGER EXTERNAL(6),
FILLER CHAR(6)
。。。表中的欄位名稱和類型
)
注意點:這個ctl放在D盤下的DB文件夾下面和你的CSV文件放在一起

運行cmd命令,讓當前目錄切換到在D:\DB
然後執行下面的命令:sqlldr userid=用戶名/密碼@sid control=test.ctl
敲下回車就開始導入數據。

具體如何寫ctl可以在網上查資料。

⑸ oracle為什麼導入數據出錯

一、原因如下:

因為 存儲過程P_BQ_BD_ACCSUBJ 中使用了[email protected]_YNDD.REGRESS.RDBMS.DEV.US.ORACLE.COM
其中使用了 database link :
LINK_YNDD.REGRESS.RDBMS.DEV.US.ORACLE.COM

二、導入方法如下:

1、excle轉成csv之後,打開csv文件看看數據中有沒有title。有的話,刪掉。讓csv中只保留數據。

PS:這個ctl放在D盤下的DB文件夾下面和你的CSV文件放在一起
運行cmd命令,讓當前目錄切換到在D:DB
然後執行下面的命令:sqlldr userid=用戶名/密碼@sid control=test.ctl
敲下回車就開始導入數據。

⑹ ctl文件怎麼導入資料庫

1,新建文件test.ctl 將下面的內容復制到文件中
----------------------
Load data
Infile 'F:\BI\017 端到端報表\SQLLDR數據導入\test.csv' --數據源文件名稱
Append --append在表後追加,insert插入空表,replace替代原有內容
Into table ctl.test --要導入的資料庫表名稱
--[when id = id_memo] --過濾條件
Fields terminated by ',' --欄位分隔符
(a1,a2,a3,a4,a5) --欄位名稱列表

⑺ 如果需要從oracle中每天定時導出數據用什麼方法

1、創建資料庫日誌表導出為文本文件的腳本tabout.ctl或tabout.sql

注意:該日誌導出後在c:HttpLog目錄下

tabout.ctl腳本內容如下:

SET NEWPAGE NONE

SET HEADING OFF

SET TERM OFF

SET SPACE 0

SET PAGESIZE 0

SET TRIMOUT ON

SET TRIMSPOOL ON

SET LINESIZE 2500

set feedback off

set echo off

SET VERIFY OFF

column v_date new_value filename;

select to_char(sysdate,'yyyymmdd') || '.log' v_date from al;

spool ..HttpLog&&filename

select id||','||name from orcluser.test;

spool off;

exit;

2、創建調用該腳本的logout.bat文件

logout.bat內容如下:

mkdir ..HttpLog

C:oracleora92insqlplus orcluser/orcl @C:Oracleout.ctl

說明:該bat文件直接在當前目錄下創建名為HttpLog的文件夾,以便tabout.ctl腳本輸出的文件存放到該目錄下。其通過調用Oracle中sqlplus可執行文件來執行tabout.ctl腳本,所以該文件直接雙擊即可運行,無需其他操作。

3、通過windows定時任務實現自動定期執行

「在控制面板——任務計劃——添加任務計劃」中建立定期將資料庫中日誌表數據導出為文本格式(如:你可以根據需求設置為每天對日誌表數據進行導出)。根據你當前對日誌文件路徑的存儲需求,修改上面兩個腳本中的存儲路徑,在windows定時任務直接調用logout.bat文件執行即可。

⑻ Oracle資料庫不在本地怎麼使用sqlloader

sqlloader的使用與Oracle資料庫是否在本地無關。前提是本地必須裝有Oracle客戶端。

使用Oracle版本:Oracle10g。

步驟:

1、配置本地連接遠程資料庫。在Oracle安裝目錄下,如「C:oracleproct10.2.0db_1 etworkADMIN」找到tnsnames.ora文件,增加內容(中文部分需要根據實際情況修改)並保存:

本地實例名(可自定義英文+數字組合)=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=伺服器IP或伺服器主機名)(PORT=Oracle埠號))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=資料庫服務名)
)
)

2、根據本地的要sqlloader的腳本在資料庫中建立相應的表,數據舉例如下:

⑼ oracle資料庫在mac osx 10.11.1 怎麼安裝

10g 試用版附帶了有幫助的文檔,通過 Oracle Universal Installer 安裝的,因此應首先解壓縮下載的文件。打開一個終端窗口,進入下載文件所在的目錄(可能是 ~/Desktop 或 ~/Documents),執行下列命令:

$ ls MAC_DB_SERVER*

如果文件最後的擴展名為 .cpio.gz,則請運行下列命令將其解壓縮。如果它最後為 .cpio,則說明您的瀏覽器已經對該文件進行了解壓縮,您可以跳過下一步驟。

$ gunzip MAC_DB_SERVER.cpio.gz
接下來,從 cpio 存檔解壓縮安裝磁碟(您可以在 -idm 之後添加 v 以便在解壓縮時看到文件列表)。

$ cpio -idm < MAC_DB_SERVER.cpio
您將位於一個名為 Disk1 的目錄中。要在默認 Web 瀏覽器中閱讀該文檔,請運行下列命令:

$ open Disk1/doc/unixdoc/index.htm
單擊「Quick Installation Guide for Apple MAC OS X」鏈接。雖然從名稱上看是快速安裝指南,但實際上這是一個詳細的指南,介紹了准備系統以及運行 Oracle Universal Installer 涉及的所有步驟。如果您以前從未安裝過 Oracle,或者使用下面的說明遇到了問題,則請花些時間通讀此指南。我還會在下面說明的各階段告訴您參考該指南的一些章節以了解更多詳細信息。

雖然該指南建議以 root 用戶通過 su - root 運行 shell,但是在 Mac OS X 上,默認情況下並不會啟用 root 用戶,該命令會提示您輸入一個並不存在的密碼。您可以通過 sudo 使用 root 許可權運行命令(如 sudo command),也可以使用 sudo su - 通過 sudo 啟動一個 root shell。

准備系統

資料庫應該由專用用戶帳戶安裝和運行,該帳戶通常名為 oracle。如果您已經安裝了 9iR2 開發人員版本(請參閱我以前的文章),則可能在系統上已經具有了 oracle 帳戶。請參閱 Quick Installation Guide 上的「Create Required Unix groups and user」部分來創建或更新 oracle 用戶以及 OSDBA 和 Oracle Inventory 組。您可以通過運行下列命令進行檢查,以確定是否已經正確配置該用戶:

$ id oracle
uid=1521(oracle) gid=1523(oinstall) groups=1523(oinstall), 80(admin), 1521(dba) [[should be only one line]]
如果您看到一個如上所示的組列表,則說明您的 oracle 用戶可以執行安裝了。請注意,您在組列表中看到的 uid、gid 數字可能有所不同。

接下來,您需要決定在哪裡存放資料庫應用程序和數據文件。因為此安裝是用於開發人員系統的,所以為了簡單起見,我選擇了放棄 Oracle 的最佳靈活體系結構。打開另一個終端窗口,輸入下列命令:

$ sudo su - oracle
$ mkdir 10gEAR2
此命令將以 oracle 用戶啟動一個 shell,並創建 /Users/oracle/10gEAR2 目錄,該目錄將用作此安裝的 $ORACLE_BASE。如果計算機具有多個磁碟,則可能還希望在另外一個磁碟上創建一個存放數據文件的目錄。Oracle 建議將應用程序和數據文件分開以獲得最佳性能。

接下來,您需要檢查幾個內核參數,確保這些內核參數已設置為 Oracle 的推薦值或比這些值還高。有關詳細信息,請參閱 Quick Install Guide 的「Configure Kernel Parameters」部分。例如,在我的系統上,除了兩個參數之外,其他參數均設置為推薦值,因此我使用管理員帳戶切換回該終端,然後更改了這兩個參數,如下所示:

$ sudo sysctl -w kern.maxproc=2068
$ sudo sysctl -w kern.maxprocperuid=2068
為了確保在重新啟動之後能夠保持這些更改,我在 /etc/sysctl.conf 文件中添加了下面兩行內容:

$ cat /etc/sysctl.conf
kern.maxproc=2068
kern.maxprocperuid=2068
接下來,您需要確保 shell 限制設置得足夠高。Quick Install Guide 建議編輯 /etc/rc 文件以及 /System/Library/StartupItems/IPServices/IPServices 文件。在清單 1 和清單 2 中有這些文件編輯過的版本。我建議按照下列方式替換這些內容:


$ cd /tmp
$ vi rc #將清單 1 的內容復制到此文件,確保
#刪除任何前導空格
$ vi IPServices #將清單 2 的內容復制到此文件,確保
#刪除任何前導空格
$ cd /etc
$ sudo cp -p rc rc.orig #備份原始文件
$ diff /tmp/rc rc #您應該只看到該指南中
#推薦的添加內容
$ sudo mv /tmp/rc rc
$ cd /System/Library/StartupItems/IPServices
$ sudo cp -p IPServices IPServices.orig #再次備份
$ diff /tmp/IPServices IPServices #確保
#唯一的區別只是這些添加內容
$ sudo mv /tmp/IPServices IPServices

如果使用編輯過的這些文件時出現問題,則可以將保存的文件重命名為原來的名稱以恢復這些文件。

接下來,您需要確保可以 ping 您的主機名。首先檢查該主機名:

$ hostname
您的主機名
如果看到的名稱最後為 .local,則可能要將您的主機名設置為了另外一個值:

$ sudo hostname 您的主機名
為了確保在重新啟動後保持該更改,請通過 sudo 編輯 /etc/hostconfig,並將「HOSTNAME=-AUTOMATIC-」一行更改為「HOSTNAME=您的主機名」。

現在檢查是否可以 ping 您的主機名(如果在上一步驟中必須手動設置該主機名,則可能會失敗)。

$ ping -c 1 `主機名`
如果收到「ping:unknown host 您的主機名」,則必須將您的主機名添加到 /etc/hosts 文件中。通過 sudo 編輯 /etc/hosts,將「127.0.0.1 localhost」更改為「127.0.0.1 localhost 您的主機名」。保存並重復上面的命令。您應該看到幾行輸出,其中包括「1 packets transmitted, 1 packets received, 0% packet loss」。

接下來,如果 /opt 目錄不存在,則應該創建該目錄;如果存在 /etc/oratab 文件則將其刪除:

$ test !/opt && sudo mkdir /opt
$ test /etc/oratab && sudo mv /etc/oratab /etc/oratab.orig
最後,將 Disk1 目錄移動到 oracle 用戶主目錄中,並確保它由該 oracle 用戶擁有:

$ sudo mv Disk1 /Users/oracle
$ sudo chown -R oracle:oinstall /Users/oracle/Disk1
運行 Oracle Universal Installer

現在切換回正在以 oracle 用戶運行 shell 的終端。啟動該安裝程序之前,必須配置您的環境。有關詳細信息,請參閱 Quick Install Guide 的「Log In as the oracle User and Configure the oracle User's Environment」部分,但是下列命令應該能夠完成此任務:

$ export ORACLE_BASE=/Users/oracle/10gEAR2 #如果您在上面選擇了不同的路徑,
#則請在此處使用該路徑
$ export ORACLE_SID=test10g
$ umask 022
$ unset ORACLE_HOME
$ unset TNS_ADMIN
現在啟動該安裝程序:

$ cd Disk1
$ ./runInstaller
該安裝程序是一個 java 應用程序,將引導您完成幾個配置信息屏幕。在 Quick Installer Guide 中對每個屏幕和推薦的輸入內容都進行了說明。我在此就不重復所有這些信息了,但是有幾個步驟需要澄清一下,還有其他幾個步驟,我們在其中不會使用默認值 - 如下所示。

在「Specify File Locations」屏幕上,將 Directory Path 值從 /Users/oracle/10gEAR2/OraHome_1 更改為 /Users/oracle/10gEAR2/orahome。此目錄將作為 $ORACLE_HOME 目錄。在「Installation Type」屏幕上,選擇 Enterprise Edition,然後在「Select Database Configuration」屏幕上選擇「Do not create a starter database」。您將在下一步驟中通過腳本創建、填充和配置資料庫。

最後,該試用版生成的 root.sh shell 腳本具有一些錯誤,這些錯誤與幾個實用程序的位置相關。將該腳本從清單 3 復制到一個新的 root.sh 文件。如果您已經為 $ORACLE_HOME 選擇了另外的值,則請確保首先編輯該腳本,然後再通過 sudo 運行該腳本。您可能仍會看到一些有關 Oracle Cluster Keys 的錯誤 - 如果不打算安裝資料庫集簇,則忽略這些錯誤即可。安裝資料庫集簇不在本文討論范圍之內。

安裝完成之後,您可以退出該安裝程序,開始下面的部分,即創建資料庫和測試您的安裝。

創建資料庫

將清單 4 的內容復制到一個名為 createDb 的文件。此腳本將創建 listener.ora 和 tnsnames.ora 文件,創建一個資料庫,並使用示例方案填充該資料庫。您可以在幾個位置對該腳本進行自定義,使其適用於您的應用程序,但是默認值就足以用於測試了。執行下列命令來設置您的環境,並運行該腳本:

$ chmod +x createDb
$ export ORACLE_HOME=$ORACLE_BASE/orahome
$ export PATH=$PATH:$ORACLE_HOME/bin
$ ./createDb
根據您的硬體不同,運行該腳本最多可能需要一小時的時間,在此之後,請以該示例用戶登錄來測試您的安裝:


$ sqlplus scott/tiger

SQL*Plus:Release 10.1.0.3.0 - Proction on Tue Jul 27 22:16:20 2004

Copyright (c) 1982, 2004, Oracle.All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Proction
With the Partitioning, OLAP and Data Mining options

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE

SQL> select count(*) from emp;

COUNT(*)
----------
14

確認資料庫正確創建之後,您可以更改默認密碼,載入您的應用程序,還可以隨意查看該示例方案。為了將該 oracle 用戶的環境配置為永久地使用這個新的資料庫,請用下列內容在該 oracle 用戶的主目錄中創建一個名為 .bashrc.oracle 的文件:

export ORACLE_HOME=/Users/oracle/10gEAR2/orahome
export ORACLE_SID=test10g
export PATH=$PATH:$ORACLE_HOME/bin
然後,通過在 .bash_profile 中創建類似下面的一行內容,確保主 shell 初始化腳本使用此文件:

. ~/.bashrc.oracle
您還可以通過將下面幾行內容復制到一個名為 oraclectl 的文件中創建一個腳本來停止和啟動該資料庫和偵聽程序。將該文件編譯成可執行文件,用「start」或「stop」作為唯一參數調用該文件。


#!/bin/sh

# 用於啟動和停止該 Oracle 資料庫
# 必須由 dba 組成員運行

start() {
$ORACLE_HOME/bin/sqlplus /nolog <<__EOF__
connect / as sysdba
startup
__EOF__
sleep 2
$ORACLE_HOME/bin/lsnrctl start
}

stop() {
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/sqlplus /nolog <<__EOF__
connect / as sysdba
shutdown abort
__EOF__
}

if [ -z $ORACLE_HOME ]; then
echo "You must define ORACLE_HOME" 1>&2
exit 2
fi

if [ !-d $ORACLE_HOME ]; then
echo "Unable to find $ORACLE_HOME" 1>&2
exit 2
fi

case "$1" in
'start')
start
;;
'stop')
stop
;;
*)
echo "Usage:$0 { start | stop }"
exit 2
;;
esac

exit 0

安裝 PHP

首先將下載的 tar 文件復制到該 oracle 用戶的主目錄中。切換回正在運行您的管理員帳戶 shell 的終端,運行下列命令:

$ cd ~/Desktop #或您下載的 PHP tar 文件所在的目錄
$ sudo mv php-4.3.8.tar.gz ~oracle
接下來,為 oracle 用戶解壓縮源代碼,配置並構建 PHP。在此示例中,為了連接 Oracle 我們剛剛激活了 OCI 擴展;您的應用程序可能需要附加的擴展來獲得 XSLT 支持、圖像操作等。運行 ./configure --help 就可以看到所有配置選項。

$ tar zxf php-4.3.8.tar.gz
$ cd php-4.3.8
$ ./configure --with-apxs --with-oci8
$ make
$ sudo make install
為了測試您的 PHP 安裝,請使用下列內容創建一個 test_oci.php 文件:


<?php
$sid = 'test10g';
$home = '/Users/oracle/10gEAR2/orahome';

putenv("ORACLE_HOME=$home");
putenv("ORACLE_SID=$sid");
putenv("TNS_ADMIN=$home/network/admin");

echo "<html><head><title>Test OCI</title></head><body>\n";

// 對於 OCI 建議進行持久性連接
$conn = OCIPlogon('scott', 'tiger', $sid);
if ($conn) {
$stmt = OCIParse($conn, "SELECT TO_CHAR(SYSDATE,
'YYYY-MM-DD HH24:MI:SS') AS
datetime FROM DUAL");
if ($stmt) {
if (OCIExecute($stmt)) {
while (OCIFetchInto($stmt, $row, OCI_ASSOC)) {
//OCI_ASSOC 中的鍵總是大寫的
echo "SYSDATE:", $row['DATETIME'];
}
}
}
}

echo "</body></html>\n";
?>

在 Mac OS X Panther 自帶的 Apache httpd.conf 文件中為您啟用了 PHP 支持,默認文檔根目錄為 /Library/Webserver/Documents。將 test_oci.php 文件復制到該文檔根目錄中,然後啟動或者重新啟動 apache:

$ sudo apachectl start
您現在可以使您的瀏覽器指向 http://127.0.0.1/test_oci.php,應該會看到當前的日期和時間。刷新您的瀏覽器若干次,觀察時間變化,注意頁面顯示要比第一次快得多。每個 apache 子進程在使用 OCIPlogon 時都會創建一個到該資料庫的持久性連接。該子進程處理的後續請求要快得多,這是因為它可以避免建立新連接的開銷。

PHP 的 OCI 擴展支持許多高級的 Oracle 特性,如存儲過程、連接變數和游標。有關 OCI 與 PHP 結合使用的詳細信息,請參閱「資源」框中的內容。

⑽ oracle資料庫 ctl文件版本不一致

可以嘗試在oracle
配置文件

initsid.ora

spfile(9i
或以上版本)
中修改
control_files
參數,
使其只包含第一個
控制文件

比如原來
control_files=control1,control2
先改為
control_files=controol1,
然後啟動資料庫,如果能夠啟動說明控制文件control1是完好的。
如果改參數後
任然
因為控制文件問題而不能啟動資料庫,再修改參數文件,使
control_files
參數值包含第二個控制文件:
control_files=control2
再啟動資料庫。
如果能夠啟動資料庫,說明控制文件
control2是完好的。
如果仍舊不能啟動資料庫,那說明;兩個控制文件都是壞的,這時只能用備份來恢復資料庫了。
如果某個控制文件能啟動資料庫,則關閉資料庫,然後用操作系統命令把好的控制文件復制到損壞的控制文件,使兩個控制文件完全相同,再修改配置文件的
control_files
參數,使其恢復指向兩個控制文件。