【转】使用aliyun阿里云镜像服务器

【转】使用aliyun阿里云镜像服务器,转自http://theo.im/blog/2014/05/20/use-aliyun-mirror-to-boost-up-download-speed/

最近本机访问 163.com  CentOS 镜像比较不稳定,体现在 ping 很低,但是 HTTP 连接很慢,yum  fastestmirror 也不太理想,所以一般都禁用之。

发现阿里云的镜像服务器,立马换了,便秘立刻就通了。

yum 镜像

官方源镜像

1
2
3
4
5
6
# 禁用 fastestmirror 插件
sed -i.backup ‘s/^enabled=1/enabled=0/’ /etc/yum/pluginconf.d/fastestmirror.conf
# 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用阿里云镜像
wget -O /etc/yum.repos.d/CentOS-Base-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo

EPEL 镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装 EPEL 源
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-68.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
# 使用阿里云镜像
if [[ ! -f /etc/yum.repos.d/epel.repo.backup ]]; then
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup 2>/dev/null || :
fi
if [[ ! -f /etc/yum.repos.d/epel-testing.repo.backup ]]; then
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup 2>/dev/null || :
fi
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

PyPi 镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir -p ~/.pip
touch ~/.pip/pip.conf
sed -i.backup -r \
‘s/^index-url\s*=\s*.+$/index-url = http:\/\/mirrors.aliyun.com\/pypi\/simple\//’ \
~/.pip/pip.conf
# If file not changed, write contents back to pip.conf
diff “~/.pip/pip.conf” “~/.pip/pip.conf.backup” &> /dev/null
if [ $? -eq 0 ]; then
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
EOF
fi

RubyGems 镜像

1
2
gem source -r https://rubygems.org/
gem source -a http://mirrors.aliyun.com/rubygems/

在Windows 7上安装MongoDB 2.6.7

注意:Windows并不适合学习和部署MongoDB ,本文仅仅是介绍在Windows7上如何安装MongoDB 2.6.7,并不推荐你这样去学习MongoDB

注意:从mongodb 2.2开始不再支持Windows XP,所以本文只适合于XP以后的Vista、Windows7或之后的版本。

请注意以下内容在windows 7上经过大量用户严格测试,绝对没有问题,如果遇到问题绝对是你操作的问题,请不要到群里提问关于安装失败的问题!

 

下载介质

需要下载的介质和下载地址:

1.    451413_intl_x64_zip.exe
2.    32位Windows 下载mongodb-win32-i386-2.6.7-signed.msi
3.    64位Windows 下载 mongodb-win32-x86_64-2008plus-2.6.7-signed.msi
4.    Robomongo  mongdb图形化管理工具

 

 

 

如果不知道自己的Windows是32bit还是64bit,可以在cmd中运行

wmic os get osarchitecture

命令来获得信息

 

例如:

 

winarch

 

 

安装MongoDB

 

首先下载 HotFix 内存补丁451413_intl_x64_zip.exe,并运行

hotfix1

 

 

hotfix2

 

hotfix3

点击continue会将补丁解压到你指定的路径,在你指定的路径下会生成Windows6.1-KB2731284-v3-x64.msu 安装文件,双击该文件(www.askmac.cn)

 

hotfix4

点击 “是(Y)“

 

hotfix5

 

hotfix6

安装后需要重启Windows

 

 

 

假设为64位操作系统则双击 mongodb-win32-x86_64-2008plus-2.6.7-signed.msi ,否则mongodb-win32-i386-2.6.7-signed.msi

mongodb-windows-install1

 

点击Next

 

mongodb-windows-install2

 

选择接受协议” I accept the terms in License Agreement”   ,并点击Next

mongodb-windows-install3

 

选择Typical典型安装

 

mongodb-windows-install4

 

点击Install

 

mongodb-windows-install5

 

mongodb-windows-install6

 

默认情况下mongodb会被安装在C:\Program Files\MongoDB 2.6 Standard下,确认已安装mongodb,在cmd中运行

 

 

“C:\Program Files\MongoDB 2.6 Standard\bin\mongo.exe” –version

 

mongodb-version

 

 

若返回MongoDB shell version: 2.6.7,则说明安装成功了,可以将mongodb的命令加入到环境变量PATH中

 

mongodb-windows-install7

 

点击开始菜单 , 计算机=》右键菜单=》点击属性

 

mongodb-windows-install8

 

 

mongodb-windows-install9

 

菜单 高级=>环境变量

 

mongodb-windows-install10

mongodb-windows-install11

“C:\Program Files\MongoDB 2.6 Standard\bin”;

 

将以上信息完整不差地加入到变量值的最前面 ,并点击确定=》确定

 

如果正确添加,那么可以在cmd.exe中直接运行mongo 命令了,重新打开一个cmd.exe

 

mongodb-windows-install12

之后以管理员身份打开一个cmd.exe

 

mongodb-windows-install13

 

执行如下命令

 

md "C:\mongodb"
md "C:\mongodb\log"
md "C:\mongodb\data"
echo logpath=C:\mongodb\log\mongo.log > "C:\mongodb\mongod.cfg"
echo dbpath=C:\mongodb\data  >> "C:\mongodb\mongod.cfg"
"C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install

 

 

注意以上命令必须以管理员身份运行!!!

 

之后可以用mongo命令登陆数据库并执行一些命令了,例如:

 

mongo
show dbs
show collections;
db.db1.insert({URL:"www.google.com"});
db.db1.find()

 

 

mongodb-windows-install14

 

 

安装ROBOMONGO 图形化管理工具

 

使用之前下载的Robomongo-0.8.4-i386.exe图形化工具

双击运行 Robomongo-0.8.4-i386.exe

 

robomongo1 robomongo2 robomongo3 robomongo4 robomongo5

 

之后运行 robomongo,可以在开始菜单找到启动程序 ,点击Create

robomongo6

如果只连接本地的mongodb,那么什么都不用选择 ,save即可

 

robomongo7

 

 

robomongo8

点中本地,并点击connect

 

robomongo9

之后可以通过robomongo来管理mongodb了

 

 

删除MongDB服务

如果不再使用MongDB服务,则可以删除该服务,命令如下:

 

net stop MongoDB

“C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe” –remove

 

Vbox上Ubuntu初始安装配置

Vbox上Ubuntu初始安装配置




sudo apt-get install openssh-server
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup

sudo vi /etc/apt/sources.list

删除原有内容,加入


deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-desktop
sudo apt-get install vnc4server
sudo apt-get install kvm
sudo apt-get install virt-manager
sudo apt-get install virt-viewer
sudo apt-get install qemu-system

vncserver :1
vi  ~/.vnc/xstartup

最后一行替换为gnome-session &

gnome-session &





crontab -e

加入
@reboot /usr/bin/vncserver :1


AIXのJFS/JFS2 専用データ復旧ソフトウェア ファイルシステムデータリカバリ

 

プロのAIX JFS/JFS2 の復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 

詩檀ソフトはAIXのデータリカバリサビースとソフトウェアを提供することに力を尽くしている。JFS2-Loader はすべてのタイプのデータリカバリに使える。

JFS2-Loader でデータをなくした例:

データリカバリタイプ

データをなくした原因

リカバリ策

JFS/JFS2に削除されたがファイル。
JFS/JFS2
に削除されたディレクトリ。
JFS/JFS2
被删除的数据库

一部の原因は人工によるものかもしれない。cron-jobs、悪いスクリプトあるいは職員の原因である。

一般的なコマンド:

  • rm *
  • rm -r *

自動的なリカバリツール。
尋問業務

再構造したファイルシステム

あるファイルシステムがロジックボリュームで実行した‘crfs’コマンドを含んでいる。

自動的なデータリカバリ。
尋問業務。

削除されたAIX LVロジックボリューム

あるファイルシステムがロジックボリュームで実行した‘’rmlv’コマンドを含んでいる。同時に、一部のロジック ボリュームも起こった。

尋問業務。

JFS-Loader 7.2バーションもうリリースした。新機能は以下の通り:

  • crfs コマンドリカバリ:ファイルシステムがcrfsコマンドに書き直したあと、JFS-Loaderでファイルをリカバリできる
  • recover dirコマンドはアーカイブリカバリを支持している。

JFS-Loader 7.2バーションが今日でリリースする。新機能は以下の通り:

  • AIX 7.1を支持するようになった
  • 性能が上げたところ
    • より効率が高いディスク I/O
    • 大きいな JFS2ファイルシステムに対して、二つの段階で分析する。
    • 第一段階で、リカバリしたいデータを指定できる。
    • 第二段階で、深刻に分析して、より多くのデータ名とデータをリカバリする。

このサイトで、AIXデータリカバリに関する情報を獲得できる。
20
年間、JFS-LoaderAIXためにデータリカバリソフトとサビースを提供してください。
JFS-Loader
IBMが支持しているAIXバーションと前のバーションも提供している。今、JFS-LoaderAIXバーション 4.3 5.xも支持している。

JFS2-Loader  価格情報

選べる許可書もいくつもある。場合によって選択してください(一つの設備の許可書の有効期限は3ヶ月)。

よくあるエラ

削除されたファイルをリカバリするにはどれだけの時間が必要としているか?

すべてのリカバリもその場でソフトで完成できる。別のところからディスクを発信する必要ではないから、ローカルリカバリは無傷である。

削除されたファイルをリカバリすることでデータが壊されるか?

そのようなことがまったくない、心配しないでください。 JFS-Loader削除リカバリソフトはファイルシステムあるいは書き込みモードのロジックボリュームをアクセスしない。データをリカバリするために、,JFS-Loaderソフトはデータファイルがなくしたところからファイルシステムに書き込まない。ロジックボリュームはreadonlyで起動する。リカバリするときに、データも異なるところに書き込まれる。それに、リカバリ削除ソフトはロジックボリュームのコピだけに使える。その中はリカバリしたいファイルのファイルシステムを含む必要がある。

反削除ソフトを使ったことで、逆により多くのデータをなくすリスクがあるか?

そのようなことも起こらない。リカバリ削除ソフトはが侵入性がないから、readonlyモードでアクセスする必要があるファイルシステムをアクセスするだけ。JFS-Loader削除リカバリソフトはfsckでファイルを再構造しない。

リカバリツールがroot権限を必要としているか?

大部分の場合に、root権限を必要としていない。読み取りアクセスはなくしたデータのロジックボリュームを含まない。 Root権限は以下の場合に限って必要としている:

  • リカバリしたいファイルの原始所有権限(ユーザーIDと組み合いID
  • 暗号化ファイルをリカバリするときに(特別な権限でこのようなファイル属性を設定できる)。

Fsckを使ったら、リカバリしたファイルを削除するかもしれないので、安全性を保障できるか?

Fsckで壊されたファイルシステムを修復するのはfsckをディザインした初心ではない。

JFS-Loaderから見れば、すべての方法もファイルシステムで壊されたあるいは完全性トラブルを作成して、fsckでトラブルをリカバリする。Fsckの修復が成功かもしれないが、成功していない例も少なくない。Fsckは破壊的な方法を利用している:再びデータをアクセスするために、ファイルのメータデータを変える。失敗した場合に、そのファイルシステムのリカバリ方法を使ったら、別の方法が通用できなくなる。

Fsckにもう一つの制約はいつもリカバリファイルとディレクトリの構造を完全にリカバリできない。

データをなくす前に、JFS-Loader削除リカバリソフトをインストールしていない場合に、データをリカバリできるか?

はい、データをなくす前にJFS-Loaderをインストールする必要がない。JFS-Loaderの原理はディスクのすべてのバイトを分析して、いろんなアルゴリズムでなくしたデータをアクセスしてリカバリする。

IBMが支持していないAIXバーションを利用しているが、通用できるか?

はい、JFS-Loader削除リカバリソフトはAIX 4.3からAIX 7.1まで支持している。

暗号化ファイルシステムの暗号ファイルをリカバリできるか?

はい、EFSにある暗号ファイルをリカバリできる。暗号ファイルは別の暗号ファイルシステムにリカバリする。暗号ファイルは別の暗号ファイルシステムにリカバリする。これで、同じ暗号で暗号化される。

購入する前に、どれだけをリカバリできるかをわからない?

我々に無料な分析ツールを要請して、リカバリできるかをテストできる。詩檀ソフトのエンジニアに連絡してシステムをテストさせてもらってもいい。JFS2分析ツールは前のバーションの方法とアルゴリズムを使っている。唯一異なったところはJFS2分析ツールは実際にデータをリカバリできない。そのツールを実行すれば、リカバリできるファイルとデータのリストが見られる。

RM -r *アーカイブ削除したが、リカバリできるか?

はい、JFS-Loader削除リカバリソフトがアーカイブリカバリとすべてのディレクトリを再構造できる。ときにリカバリしたディレクトリをディレクトリにリンクできないが、そのディレクトリが/.INODESディレクトリからリカバリできる。(JFS2分析ツールが使っている専用ディレクトリ)。

削除リカバリソフトがcreate filesystemコマンドあるいはcrfsからリカバリできるか?

はい、最新の追加機能では再構造したファイルシステムのリカバリを含んでいるが、二つの制約がある:

再構造したファイルシステムが原始システムと同じバラメタで作成する。

ファイルシステムを再構造するのは一部のメータデータを上書きするから、全面的にリカバリするのは不可能である。JFS2分析ツールで、どれだけのデータをリカバリできるかをすぐ分かれる。

どうやって削除リカバリソフトを購入できるか?いつに運用するか?

削除リカバリソフトはネットで購入できる。クレジットカードで支払い完了したら、ダウンロードできる。

リカバリできるデータを確認するためにroot権限が必要としているか?

JFS2分析ツールがrootする必要がない。ロジックボリュームをアクセスするときだけ必要としている。

JFS2分析ツールで確認したファイルがリカバリできるか?

無料なJFS2分析ツールで確認したファイルも有料バーションにも見られる:同じなアルゴリズムとコードを使っている。唯一の違いは、有料バーションがデータをリカバリできる。

ファイルシステムにリカバリしたいディレクトリとファイルも見つからない。削除されたデータがディレクトリ/ dir1にあるが、JFS2分析ツールでリカバリできるデータが何もない場合に、データをリカバリできるか?

ときによって、削除されたファイルが完全にリカバリできない。この場合に、JFS2分析ツールは専用ディレクトリ.INODESでリカバリできるファイルを挙げる。

削除されたファイルの名を見つからないが、ファイルをリカバリできるか?

時にファイルをリカバリできるが、ファイル名を再構造できない。この場合にJFS2でリカバリできるファイルを専用ディレクトリにリンクする。

ファイル名がリカバリしたいデータに該当するかということがどうやって分かれるか?

JFS2分析工具会显示已删除文件的许多细节:所有者,最后修改时间戳,文件大小,可恢复数据的文件类型(类似于文件类型命令“file”)。此外,显示出的文件的前几个字节。

あと何のオプションがあるか:Oracleデータベースファイルを検索する?

Oracleデータベースファイルをリカバリしたい時に、答えがはいである。そのオプションを利用すると、削除リカバリソフトがOracleファイルと標識されたファイルを探すという特別なモードを起動する。そのツールはデータベースとテーブルスペース名に対して、一番いい見積もりをあげる。

JFS2 分析ツールを運用するにはかなり長い時間をかかっているが、いつでもこれほどの時間が必要としているか?

いいえ。ディフォルトで、分析が終わったら、JFS2は状態ファイルをディレクトリ录/ var / JFS-Loaderに格納するので、次にJFS2を運用するときに、前の分析の結果を使うか、もう一度ファイルシステムをスキャンするかを選べる。

JFS2 分析ツールの機能と特性

  • AIX 4.3, AIX 5.x, AIX 6.1 AIX 7.1を支持している
  • AIX 5.x, AIX 6.1 and AIX 7.1JFS2を支持している
  • ファイルシステムを暗号化することも支持している。いろんなバーションで暗号化ファイルを別のファイルシステムにロードすることも支持している。
  • リカバリできるOracleテーブルスペースを自動的に検出できる。そのデータベースの名とテーブルスペースを示す(特別なOracleバーションに限る )
  • ファイルインポートを高速に分析できる
  • JFS2でファイル名を含んで、大量に削除したデータをほぼ完全にリカバリできる。
  • interactive and intuitiveモード:cdlsodなどのコマンドを使って、ディレクトリ構造でリカバリできるファイルを確認する。
    • リカバリツールは別のコマンドを含んでいる(JFS2に含んでいない)
  • ソフトは完全なファイルシステムを分析して、どれだけのファイルをリカバリできるかを分析する。
  • ファイルタイプを示す
  • ファイルの前の80バイトを示す
  • ファイルのパス名を示す
  • Root権限で実行する必要はない
  • 確認したいロジックボリューム読み取る権限だけが必要としている
  • ‘vxfslist file-name’でデータリカバリのリストを獲得できる
  • 状態ファイルの使い道:分析したあと、次により速く起動できるように、状態情報が格納される。

三つのステップでAIXで削除されたファイルをリカバリする

一つのファイルがAIXで削除されたら、その内容はその場で削除されない。AIXはヘッドディスクが使えると標識するだけだから、データがそのまま残る。JFS-Loaderを使うと、削除したデータを簡単にリカバリできる。

このツールはデータもファイルも削除されたあらゆるディザスター状況に対応できる。一部の例:

  • ユーザーがrm *と入力する
  • システムが侵入されて、一部のファイルが削除された
  • あるソフトウェアの bugによって、ファイルを削除した
  • 既存するJFS2ファイルシステムでcrfsを実行した
  • ほかのファイルが削除された場合

どうやってJFSファイルシステムから削除されたファイルをリカバリできるか 

JFS ファイルシステムのリカバリ制約:

  • 大きさが4MBを超えたファイルがある.INODES サブディレクトリにリカバリするあるいは.SBLOCK ディレクトリにリカバリする。

以下はリカバリした例:

赤字:

Oracleファイルに興味がない

18inodeからファイルをリカバリできる

28個間接ブロックからファイルをリカバリできる

状態ファイルの位置

許可書のタイプ

.INODESディレクトリにリカバリできるファイルタイプ

9つ完全なパスでファイルをリカバリできる。

Rootディレクトリでどれだけのファイルがリカバリできるか

20個ファイルを含むリカバリできるサブディレクトリ

ファイルの前にエクスポートできるバイト

間接ブロックからデータをリカバリできるサブディレクトリ

ファイルシステムのrootディレクトリで9つリカバリできるファイルを示す 。

各ファイルのタイプが示される。データに初めてのインポートできるバイトも示される

サブディレクトリ.INODESに切り替える

.INODESディレクトリにすべてのリカバリできるinodeを含んでいる。再構造ファイル名がないinodesは唯一の番号を割り当てられる。

もしデータが.INODESディレクトリにいないなら、.SBLOCKディレクトリのファイルを確認して、ファイルの大きさが最近の4096に入力する。

もし使っているのはソフトの有料バーションであれば、CPコマンドでデータをファイルシステムにコピできる。

JFS2 ファイルシステムからどうやって削除されたファイルをリカバリできるか

以下はJFS2ファイルシステムリカバリした例:

赤字:

Oracleファイルに興味がない

リカバリできるinodesをスキャンする

使えるすべてのブロックをスキャンしてより多くのデータを獲得できる

ファイル名再構造を試す
許可書のタイプを購入する
リカバリできるinodesをスキャンする
使えるすべてのブロックをスキャンして、より多くのデータを獲得する
ファイル名を再構造してみる

購入した許可書のタイプ
.INODES
ディレクトリでリカバリできるファイルタイプ

Lsがファイルシステムのrootディレクトリでリカバリできるファイルを示す

/2 はサブディレクトリに二つのリカバリできるファイルがあると示している。

Cd dir3に切り替えた

.INODESコマンドにリカバリできるすべてのinodesを含んでいる。ファイル名がなければ、再構造できるinodesは唯一な番号を割り当てられる。

有料バーションを使うとCPコマンドでほんとなファイルシステムにコピできる。
ソフトウェアをダウンロードあるいは実行するときにトラブルが起こったら、我々に連絡してください。

どうやってCrfsコマンドで壊されたJFS2ファイルシステムからファイルをリカバリできるか

以下はJFS2ファイルシステムがcrfsによって壊された後リカバリする例。

赤字:

/crfscrfsコマンドによって壊されたファイルシステム。

V53fslistツールを実行して、リカバリできるデータを分析する

そのツールはcrfsのリカバリかもしれないと示している。

そのツールがデータを確認できないから、-unsrfsオプションを再び実行してください。

そのツールがリカバリできるデータがないと示している==>-uncrfsオプションを設定して、再び実行する

v53fslistツールを再び実行して、-uncrfsオプションを設定した。

状態情報が無用、答えは ‘n’である

今ツールがリカバリできるツールが見つからない

後で使えるために、状態情報を格納する

購入情報

リカバリできるファイルのハイレベルの概説

Lsコマンドでリカバリできるデータを確認できる

[ ]之间的文件名是被删除的目录或文件

[etc]619 ==> 619はそのディレクトリでリカバリできるファイルを含んでいると示している

サブディレクトリsbinに切り替える

サブディレクトリ /sbin/helpersに切り替える

Recoverdirコマンドごとをリカバリするが、無料ツールで支持していない==>有料バーションに切り替える。

-uncrfsオプションで有料バーションを実行する

リカバリできるファイルの情報

無料ツールが示しているのとまったく同じようになる

ディレクトリを切り替える

再びディレクトリを切り替え、リカバリできるファイルをリストする

すべてのファイルを/tmp/reにリカバリする

ctrl-Zで一旦中止して、/tmp/reを作成する

ディレクトリ/tmp/reにリカバリする

第三のレベルにリカバリする

ctrl-Zでリカバリツールを中止する

リカバリできるファイルとディレクトリをリストする。

ユーザー評価

我社に極めて大きいなデータベースをリカバリする必要がある(90 +GB)から、いつもツールに困っている。けどJFS-Loaderなら、いつもうまくいける必要なデータを全部リカバリしてくれた。

このツールはとっても使いやすいので、説明通りに使えば、うまくいける。

マイク、米国

助かりました!ツールのおかけで、とんだ災難から救い出してくれた!

630GBファイルシステムで90GBメモリーデータベースファイルをリカバリできた。リカバリしたあと、メモリー完全性テストを実行したが、完璧であった。

カリ、米国

思った以上にリカバリソフトウェアの機能を果たせた!

エンディ、イギリス

ツールをダウンロードして、リカバリできる部分を確認できた。 

カリ、オーストラリア

これはとっても便利なツールだ!開發してくれて感謝いたします。

トム、米国

昨日の協力、感謝いたします。100%のファイルをリカバリできた。データベースにあるポインタがエラになった。これはデータベースがデータブロックを書き込めない原因となった。ポインタをリカバリできて、ログファイルを再び実行して、二つ目にリカバリした。午前中に実行した。

達人、米国

とにかく、素晴らしいツールだった。ほぼ完全にリカバリできた。これがなければ、今度は災難的なデータ喪失になる。

ジェシ、米国

ファイルをリカバリできて、システムごとをリカバリできた。最後にJFS-Loaderでおおよそ1 TBくらいのデータをリカバリできた。

ピエ ルヘンリー、フランス

SAPから削除されたすべてのデータをリカバリできた。ツールはとっても効ける。ご支持、ありがとうございました。

シャア インド

Oracle ASM架构图

Oracle ASM架构图Oracle ASM架构图

ORA-15042 ORA-15040 ORA-15032 ASM add disk加盘

存在这种可能性,即ORACLE ASM在add disk扩盘时add disk操作正常完成,disk group的rebalance其实还没有开始,但是由于新加入的disk存在硬件故障,导致add disk后写入到disk header的所有metadata元数据全部丢失,且由于diskgroup是外部冗余即EXTERNAL REdundancy所以该diskgroup由于已经加入了一个DISK,而该DISK上的metadata全部丢失的缘故,所以该diskgroup 将无法正常MOUNT。

且由于新加入的disk上的所有metadata都丢失了,而不仅仅是丢失了disk header的KFBTYP_DISKHEAD,所以还不能是仅仅将KFBTYP_DISKHEAD的信息通过kfed merge其他的disk信息并做修改来还原,其需要通过特殊的手工处理才能绕过该问题。

如下面的例子:

 

SUCCESS: diskgroup TESTDG03 was created
NOTE: cache deleting context for group TESTDG03 1/0x86485c30
NOTE: cache registered group TESTDG03 number=1 incarn=0xab385c36
NOTE: cache began mount (first) of group TESTDG03 number=1 incarn=0xab385c36
NOTE: Assigning number (1,3) to disk (/oracleasm/asm-disk04)
NOTE: Assigning number (1,2) to disk (/oracleasm/asm-disk03)
NOTE: Assigning number (1,1) to disk (/oracleasm/asm-disk02)
NOTE: Assigning number (1,0) to disk (/oracleasm/asm-disk01)
Thu Jan 29 08:21:07 2015
NOTE: GMON heartbeating for grp 1
GMON querying group 1 at 92 for pid 20, osid 20176
Thu Jan 29 08:21:07 2015
NOTE: cache opening disk 0 of grp 1: TESTDG03_0000 path:/oracleasm/asm-disk01
NOTE: F1X0 found on disk 0 au 2 fcn 0.0
NOTE: cache opening disk 1 of grp 1: TESTDG03_0001 path:/oracleasm/asm-disk02
NOTE: cache opening disk 2 of grp 1: TESTDG03_0002 path:/oracleasm/asm-disk03
NOTE: cache opening disk 3 of grp 1: TESTDG03_0003 path:/oracleasm/asm-disk04
NOTE: cache mounting (first) external redundancy group 1/0xAB385C36 (TESTDG03)
NOTE: cache recovered group 1 to fcn 0.0
NOTE: redo buffer size is 256 blocks (1053184 bytes)
Thu Jan 29 08:21:07 2015
NOTE: LGWR attempting to mount thread 1 for diskgroup 1 (TESTDG03)
NOTE: LGWR found thread 1 closed at ABA 0.10750
NOTE: LGWR mounted thread 1 for diskgroup 1 (TESTDG03)
NOTE: LGWR opening thread 1 at fcn 0.0 ABA 2.0
NOTE: setting 11.2 start ABA for group TESTDG03 thread 1 to 2.0
NOTE: cache mounting group 1/0xAB385C36 (TESTDG03) succeeded
NOTE: cache ending mount (success) of group TESTDG03 number=1 incarn=0xab385c36
GMON querying group 1 at 93 for pid 13, osid 4612
Thu Jan 29 08:21:07 2015
NOTE: Instance updated compatible.asm to 11.2.0.0.0 for grp 1
SUCCESS: diskgroup TESTDG03 was mounted
SUCCESS: CREATE DISKGROUP TESTDG03 EXTERNAL REDUNDANCY  DISK '/oracleasm/asm-disk01' SIZE 129500M ,
'/oracleasm/asm-disk02' SIZE 128800M ,
'/oracleasm/asm-disk03' SIZE 129200M ,
'/oracleasm/asm-disk04' SIZE 128800M  ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
Thu Jan 29 08:21:07 2015
NOTE: diskgroup resource ora.TESTDG03.dg is online
NOTE: diskgroup resource ora.TESTDG03.dg is updated
Thu Jan 29 08:21:23 2015
SQL> alter diskgroup testdg03  add disk '/oracleasm/asm-disk06' 
ORA-15032: not all alterations performed
ORA-15260: permission denied on ASM disk group
ERROR: alter diskgroup testdg03  add disk '/oracleasm/asm-disk06'
Thu Jan 29 08:21:31 2015
SQL> alter diskgroup testdg03  add disk '/oracleasm/asm-disk06' 
NOTE: Assigning number (1,4) to disk (/oracleasm/asm-disk06)
NOTE: requesting all-instance membership refresh for group=1
NOTE: initializing header on grp 1 disk TESTDG03_0004
NOTE: requesting all-instance disk validation for group=1
Thu Jan 29 08:21:32 2015
NOTE: skipping rediscovery for group 1/0xab385c36 (TESTDG03) on local instance.
NOTE: requesting all-instance disk validation for group=1
NOTE: skipping rediscovery for group 1/0xab385c36 (TESTDG03) on local instance.
NOTE: initiating PST update: grp = 1
Thu Jan 29 08:21:32 2015
GMON updating group 1 at 94 for pid 21, osid 22706
NOTE: PST update grp = 1 completed successfully 
NOTE: membership refresh pending for group 1/0xab385c36 (TESTDG03)
GMON querying group 1 at 95 for pid 13, osid 4612
NOTE: cache opening disk 4 of grp 1: TESTDG03_0004 path:/oracleasm/asm-disk06
GMON querying group 1 at 96 for pid 13, osid 4612
SUCCESS: refreshed membership for 1/0xab385c36 (TESTDG03)
SUCCESS: alter diskgroup testdg03  add disk '/oracleasm/asm-disk06'
NOTE: Attempting voting file refresh on diskgroup TESTDG03
Thu Jan 29 08:22:09 2015
SQL> alter diskgroup testdg03 dismount 
NOTE: cache dismounting (clean) group 1/0xAB385C36 (TESTDG03) 
NOTE: messaging CKPT to quiesce pins Unix process pid: 22730, image: oracle@mlab2.oracle.com (TNS V1-V3)
Thu Jan 29 08:22:10 2015
NOTE: LGWR doing clean dismount of group 1 (TESTDG03)
NOTE: LGWR closing thread 1 of diskgroup 1 (TESTDG03) at ABA 2.15
NOTE: cache dismounted group 1/0xAB385C36 (TESTDG03) 
Thu Jan 29 08:22:10 2015
GMON dismounting group 1 at 97 for pid 21, osid 22730
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
SUCCESS: diskgroup TESTDG03 was dismounted
NOTE: cache deleting context for group TESTDG03 1/0xab385c36
Thu Jan 29 08:22:10 2015
NOTE: diskgroup resource ora.TESTDG03.dg is offline
SUCCESS: alter diskgroup testdg03 dismount
NOTE: diskgroup resource ora.TESTDG03.dg is updated
SQL> alter diskgroup testdg03 mount 
NOTE: cache registered group TESTDG03 number=1 incarn=0x83f85c5f
NOTE: cache began mount (first) of group TESTDG03 number=1 incarn=0x83f85c5f
NOTE: Assigning number (1,3) to disk (/oracleasm/asm-disk04)
NOTE: Assigning number (1,2) to disk (/oracleasm/asm-disk03)
NOTE: Assigning number (1,1) to disk (/oracleasm/asm-disk02)
NOTE: Assigning number (1,0) to disk (/oracleasm/asm-disk01)
Thu Jan 29 08:22:22 2015
NOTE: GMON heartbeating for grp 1
GMON querying group 1 at 100 for pid 21, osid 22730
Thu Jan 29 08:22:22 2015
NOTE: Assigning number (1,4) to disk ()
GMON querying group 1 at 101 for pid 21, osid 22730
NOTE: cache dismounting (clean) group 1/0x83F85C5F (TESTDG03) 
NOTE: messaging CKPT to quiesce pins Unix process pid: 22730, image: oracle@mlab2.oracle.com (TNS V1-V3)
NOTE: dbwr not being msg'd to dismount
NOTE: lgwr not being msg'd to dismount
NOTE: cache dismounted group 1/0x83F85C5F (TESTDG03) 
NOTE: cache ending mount (fail) of group TESTDG03 number=1 incarn=0x83f85c5f
NOTE: cache deleting context for group TESTDG03 1/0x83f85c5f
GMON dismounting group 1 at 102 for pid 21, osid 22730
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
ERROR: diskgroup TESTDG03 was not mounted
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "4" is missing from group number "1" 
ERROR: alter diskgroup testdg03 mount
Thu Jan 29 08:27:37 2015
SQL> alter diskgroup testdg03 mount 
NOTE: cache registered group TESTDG03 number=1 incarn=0x56985c64
NOTE: cache began mount (first) of group TESTDG03 number=1 incarn=0x56985c64
NOTE: Assigning number (1,3) to disk (/oracleasm/asm-disk04)
NOTE: Assigning number (1,2) to disk (/oracleasm/asm-disk03)
NOTE: Assigning number (1,1) to disk (/oracleasm/asm-disk02)
NOTE: Assigning number (1,0) to disk (/oracleasm/asm-disk01)
Thu Jan 29 08:27:43 2015
NOTE: GMON heartbeating for grp 1
GMON querying group 1 at 105 for pid 21, osid 23017
NOTE: cache opening disk 0 of grp 1: TESTDG03_0000 path:/oracleasm/asm-disk01
NOTE: F1X0 found on disk 0 au 2 fcn 0.0
NOTE: cache opening disk 1 of grp 1: TESTDG03_0001 path:/oracleasm/asm-disk02
NOTE: cache opening disk 2 of grp 1: TESTDG03_0002 path:/oracleasm/asm-disk03
NOTE: cache opening disk 3 of grp 1: TESTDG03_0003 path:/oracleasm/asm-disk04
NOTE: cache mounting (first) external redundancy group 1/0x56985C64 (TESTDG03)
NOTE: cache recovered group 1 to fcn 0.609
NOTE: redo buffer size is 256 blocks (1053184 bytes)
Thu Jan 29 08:27:43 2015
NOTE: LGWR attempting to mount thread 1 for diskgroup 1 (TESTDG03)
NOTE: LGWR found thread 1 closed at ABA 2.15
NOTE: LGWR mounted thread 1 for diskgroup 1 (TESTDG03)
NOTE: LGWR opening thread 1 at fcn 0.609 ABA 3.16
NOTE: cache mounting group 1/0x56985C64 (TESTDG03) succeeded
NOTE: cache ending mount (success) of group TESTDG03 number=1 incarn=0x56985c64
GMON querying group 1 at 106 for pid 13, osid 4612
Thu Jan 29 08:27:43 2015
NOTE: Instance updated compatible.asm to 11.2.0.0.0 for grp 1
SUCCESS: diskgroup TESTDG03 was mounted
SUCCESS: alter diskgroup testdg03 mount
Thu Jan 29 08:27:43 2015
NOTE: diskgroup resource ora.TESTDG03.dg is online
NOTE: diskgroup resource ora.TESTDG03.dg is updated
Thu Jan 29 08:33:52 2015
SQL> alter diskgroup testdg03 check all norepair 
NOTE: starting check of diskgroup TESTDG03
Thu Jan 29 08:33:52 2015
GMON checking disk 0 for group 1 at 107 for pid 21, osid 23017
GMON checking disk 1 for group 1 at 108 for pid 21, osid 23017
GMON checking disk 2 for group 1 at 109 for pid 21, osid 23017
GMON checking disk 3 for group 1 at 110 for pid 21, osid 23017
ERROR: no kfdsk for  (4)
ERROR: check of diskgroup TESTDG03 found 1 total errors
ORA-15049: diskgroup "TESTDG03" contains 1 error(s)
ORA-15032: not all alterations performed
ORA-15049: diskgroup "TESTDG03" contains 1 error(s)
ERROR: alter diskgroup testdg03 check all norepair
Thu Jan 29 08:34:07 2015
SQL> alter diskgroup testdg03 check all 
NOTE: starting check of diskgroup TESTDG03
Thu Jan 29 08:34:07 2015
GMON checking disk 0 for group 1 at 111 for pid 21, osid 23017
GMON checking disk 1 for group 1 at 112 for pid 21, osid 23017
GMON checking disk 2 for group 1 at 113 for pid 21, osid 23017
GMON checking disk 3 for group 1 at 114 for pid 21, osid 23017
ERROR: no kfdsk for  (4)
ERROR: check of diskgroup TESTDG03 found 1 total errors
ORA-15049: diskgroup "TESTDG03" contains 1 error(s)
ORA-15032: not all alterations performed
ORA-15049: diskgroup "TESTDG03" contains 1 error(s)
ERROR: alter diskgroup testdg03 check all
SQL> alter diskgroup testdg03 check all repair 
NOTE: starting check of diskgroup TESTDG03
GMON checking disk 0 for group 1 at 115 for pid 21, osid 23017
GMON checking disk 1 for group 1 at 116 for pid 21, osid 23017
GMON checking disk 2 for group 1 at 117 for pid 21, osid 23017
GMON checking disk 3 for group 1 at 118 for pid 21, osid 23017
ERROR: no kfdsk for  (4)
ERROR: check of diskgroup TESTDG03 found 1 total errors
ORA-15049: diskgroup "TESTDG03" contains 1 error(s)
ORA-15032: not all alterations performed
ORA-15049: diskgroup "TESTDG03" contains 1 error(s)
ERROR: alter diskgroup testdg03 check all repair

[oracle@mlab2 oracleasm]$ oerr ora 15042
15042, 00000, “ASM disk \”%s\” is missing from group number \”%s\” ”
// *Cause:  The specified disk, which is a necessary part of a diskgroup,
//          could not be found on the system.
// *Action: Check the hardware configuration.
//

ORA-15042错误正是因为add disk的磁盘上的metadata全部丢失了,但搞笑的时候新加入的盘上可能因为还没有开始rebalance而没有一点真正有意义的数据,但因为ASM认为该disk已经add进来了,所以必须要该disk可用才能mount diskgroup。 而且用户甚至无法强制DROP这个DISK,原因是需要DISKGROUP在MOUNT状态下才可以drop disk, 这就变成了鸡生蛋 蛋生鸡的死循环, 要DROP这个disk必须MOUNT DISKGROUP,但要MOUNT DISKGROUP要先DROP该DISK。

 

对于此问题一般需要诗檀软件工程师手动修改ASM metadata来绕过问题,或者如果有之前的ASM metadata也可以采用。

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638   QQ号:47079569    邮箱:service@parnassusdata.com

ASM kfed repair到底干点啥?

官方对于kfed repair命令的描述比较简单:Recover the disk header from the redundant copy of it maintained on an unused portion of the disk. 其主要用来disk header的头4096 bytes的KFBTYP_DISKHEAD结构,这个恢复是基于10.2.0.5以后的Disk Header自动备份机制的。其在PST即AU=1的最后第二个数据块中(Read from PST(AU 1)’s penultimate Block)自动备份了KFBTYP_DISKHEAD。

 

如:

[oracle@mlab2 oracleasm]$ kfed read asm-disk04 aun=1 blkn=254|less
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                       0 ; 0x004: blk=0
kfbh.block.obj:              2147483651 ; 0x008: disk=3
kfbh.check:                    98849704 ; 0x00c: 0x05e453a8
kfbh.fcn.base:                        0 ; 0x010: 0x00000000
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
kfdhdb.driver.provstr:         ORCLDISK ; 0x000: length=8
kfdhdb.driver.reserved[0]:            0 ; 0x008: 0x00000000
kfdhdb.driver.reserved[1]:            0 ; 0x00c: 0x00000000
kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000
kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000
kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000
kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000
kfdhdb.compat:                168820736 ; 0x020: 0x0a100000
kfdhdb.dsknum:                        3 ; 0x024: 0x0003
kfdhdb.grptyp:                        3 ; 0x026: KFDGTP_HIGH
kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname:              DATA1_0003 ; 0x028: length=10
kfdhdb.grpname:                   DATA1 ; 0x048: length=5
kfdhdb.fgname:               DATA1_0003 ; 0x068: length=10
kfdhdb.capname:                         ; 0x088: length=0
kfdhdb.crestmp.hi:             33006980 ; 0x0a8: HOUR=0x4 DAYS=0xc MNTH=0x9 YEAR=0x7de
kfdhdb.crestmp.lo:           2555232256 ; 0x0ac: USEC=0x0 MSEC=0x370 SECS=0x4 MINS=0x26
kfdhdb.mntstmp.hi:             33008247 ; 0x0b0: HOUR=0x17 DAYS=0x13 MNTH=0xa YEAR=0x7de
kfdhdb.mntstmp.lo:           3341018112 ; 0x0b4: USEC=0x0 MSEC=0xf9 SECS=0x32 MINS=0x31
kfdhdb.secsize:                     512 ; 0x0b8: 0x0200
kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000
kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact:                    113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize:                  128800 ; 0x0c4: 0x0001f720
kfdhdb.pmcnt:                         3 ; 0x0c8: 0x00000003
kfdhdb.fstlocn:                       1 ; 0x0cc: 0x00000001
kfdhdb.altlocn:                       2 ; 0x0d0: 0x00000002
:

由于ASM 有这个备份,所以kfed repair可以自动修复ASM disk header的最开始的4096 bytes,但又由于这个备份只备份4096字节的metadata,所以它不能应对整体metadata(除掉KFBTYP_DISKHEAD外)还有大量的其他必须的metadata元数据。

之前在用户现场发现kfed repair也能修复PST KFBTYP_PST_META中的部分逻辑讹误/损坏,但一直无法在自己的环境中重现。

 

具体STRACE了下 kfed repair的处理过程:

 

[oracle@mlab2 oracleasm]$ dd if=/dev/zero of=asm-disk04 bs=4096 count=1 conv=notrunc
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 6.9811e-05 seconds, 58.7 MB/s
[oracle@mlab2 oracleasm]$ 
[oracle@mlab2 oracleasm]$ kfed read asm-disk04
kfbh.endian:                          0 ; 0x000: 0x00
kfbh.hard:                            0 ; 0x001: 0x00
kfbh.type:                            0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt:                          0 ; 0x003: 0x00
kfbh.block.blk:                       0 ; 0x004: blk=0
kfbh.block.obj:                       0 ; 0x008: file=0
kfbh.check:                           0 ; 0x00c: 0x00000000
kfbh.fcn.base:                        0 ; 0x010: 0x00000000
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
7F70E2F06400 00000000 00000000 00000000 00000000  [................]
  Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]

[oracle@mlab2 oracleasm]$ 
[oracle@mlab2 oracleasm]$ 
[oracle@mlab2 oracleasm]$ www.askmac.cn
[oracle@mlab2 oracleasm]$ 
[oracle@mlab2 oracleasm]$ strace -o  kfed1.log kfed repair asm-disk04

munmap(0x7fd80aa2d000, 143360)          = 0
stat("asm-disk04", {st_mode=S_IFREG|0644, st_size=135056588800, ...}) = 0
access("asm-disk04", F_OK)              = 0
statfs("asm-disk04", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=961422084, f_bfree=454635689, f_bavail=405808746, f_files=244187136, f_ffree=24
4182184, f_fsid={-138681668, -1790432782}, f_namelen=255, f_frsize=4096}) = 0
open("asm-disk04", O_RDWR)              = 7
lseek(7, 2088960, SEEK_SET)             = 2088960
read(7, "\1\202\1\1\0\0\0\0\3\0\0\200\250S\344\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(7, 0, SEEK_SET)                   = 0
read(7, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(7, 0, SEEK_SET)                   = 0
write(7, "\1\202\1\1\0\0\0\0\3\0\0\200\250S\344\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
close(7)

在以上场景中未重现KFED 修复KFBTYP_PST_META的元数据,其仅仅读取了偏移量为2088960的(2088960/4096=510=255+255 即AUN=1的最后第二个块)的4096字节,并写入到OFFSET=0的地方。

 

 

具体查看了以下KFED的源代码 , 也并未发现其会修复其他地方metadata的线索:

 



#define KFEDOP_REPAIR ((kfedop)13)      /* Repair ASM disk header            */
www.askmac.cn

  case KFEDOP_REPAIR:
    /* Read from PST(AU 1)'s penultimate Block */
    cx->aunum_kfedcx  = (ub4)1;
    cx->blknum_kfedcx = (ub4)(bfact - 2);

    if (!kfedReadBlk(cx))
      goto done;

    /* Validate the Disk Header block read from PST */
    if(!kfedValidateBlk(cx, KFBTYP_DISKHEAD))
      goto done;

    /* Fix the block number and checksum in the buffer */
    if (!kfedFixBackupHeader(cx)) www.askmac.cn
      goto done;

    /* Write to Disk Header(AU 0 and Block 0) */
    cx->aunum_kfedcx  = (ub4)0;
    cx->blknum_kfedcx = (ub4)0;

    if (!kfedWriteBlk(cx))
      goto done;

    break;

以上代码可以理解为,KFEDOP_REPAIR操作读取PST(AU 1)’s penultimate Block即AUN=1的最后第二个块,若无法读取则直接报错,若可以读取则验证从PST中读取的DISK header的block,并FIX其中的block number以及checksum值,之后写出到disk header即AUN=0 BLKN=0的地方。

 

总之,如果确实遇到了此类ASM的问题,那么在充分备份DISK HEADER后(备份前200MB是必要的),在有DISK HEADER自动备份的情况下,尝试KFED REPAIR一下吧,如果不能成功那么后续会有一堆的诊断metadata和手动修复工作等着我们呢。

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

 

诗檀软件专业数据库修复团队

 

服务热线 : 13764045638   QQ号:47079569    邮箱:service@parnassusdata.com

 

ORACLE PRM是诗檀软件独立研发的ORACLE数据库灾难恢复软件,其具有全程图形化界面、简单高效等特点。

欢迎下载使用ORACLE PRM。 下载地址:http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.zip

PRM用户使用手册。http://www.parnassusdata.com/sites/default/files/ParnassusData%20Recovery%20Manager%20For%20Oracle%20Database%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C%20v0.3.pdf

 

 

 

Oracle数据库11g ocm认证大师考试信息

本文固定链接:https://www.askmac.cn/archives/oracle-11g-ocm-info.html 

Oracle数据库11g ocm认证大师考试信息

 

 

测试号: 11GOCM

相关认证: Oracle Database 11g Administrator Certified Master

测试产品版本:11g

测试所需时间:2天

 

考试注册

  • 从Oracle大学(Oracle University)购买考试券。
  • 在PearsonVue预约考试并选择临近的考场。
  • 在Oracle测试中心注册考试。

 

考试准备

OCM考试并不包含任何必须的参加的课程。你需要为此次认证进行有计划的实践演练或确保就认证中的考点任务已经具备相应的在职经验。由于Oracle大学提供的课程不会涵盖所有考试的考点,因此你需要做一个综合全面的考前准备。

  • 仔细回顾OCM考试列出的考点以评估你是否需要额外的加强训练和准备。
  • 选择参加Oracle大学中的高级数据库管理员课程来增强你的训练效果。
  • 从Oracle Technology Network(OTN)中查阅Oracle数据库11g文档库进行学习。
  • 准备一个实验环境(实验环境并不需要和OCM考试中使用的操作系统和软件版本完全一致)。你可以从OTN上直接下载Oracle产品来搭建你的环境。请使用Linux操作系统来搭建。RedHat或其他Linux都可,所需环境应支持KDE 。

 

其他资源及信息

考试提供:

  • 考试环境:除了日本之外,不管你在哪里参见考试,OCM考试环境都将是全英文的。
  • 重考政策:一旦考试失败,你需要等待14天才能再次注册。(请注意,即便你换一个新的测试ID来注册考试也是不合规的,这将使得你的考试无效。)
  • 考试取消政策:一旦你注册了考试,则考试不可取消,相关费用也是不可退的。

 

考试注意

  • 基于考试目标,考生将经历9个技术环节方面的作业。
  • 任务中可以通过命令行模式(CLI)或图形化模式(GUI)以及当时可用的工具来完成。

考试中所用环境

  • Oracle Linux Release 5.4 (32-bit)
  • Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 (32-bit)
  • Oracle Enterprise Manager 11g Grid Control Release 1 (11.1.0.1.0) (32-bit)

 

为了准备OCM测试,参与者应该对每个技术环节中的任务非常精通。通过OTN下来软件来搭建实验环境。可使用最近可用的软件; 不必要苛求和OCM考试中所用的操作系统以及数据库版本保持一致。因为最新版本的Oracle软件也同样支持之前版本的所有特性; 你可以从OTN上的产品文档中获知如软件版本,相关参数值,命名差异及过时特性的相关信息。

 

考点一览

Server Configuration

  • Create the database
  • Determine and set sizing parameters for database structures
  • Create and manage temporary, permanent, and undo tablespaces
  • Stripe data files across multiple physical devices and locations
  • Configure the database environment to support optimal data access performance
  • Create and manage database configuration files
  • Create and manage bigfile tablespaces
  • Create and Manage a tablespace that uses NFS mounted file system file
  • Create and manage multiple network configuration files
  • Create and configure a listener
  • Configure the database instance to support shared server connections
  • Set up network tracing
  • Manage Oracle network processes
  • Configure the network environment to allow connections to multiple databases
  • Use configurationless connections
  • Use OPatch to install a patch
  • Use Grid Infrastructure to manage oracle databases and other resources
  • Use Enterprise Manager Configuration Assistant(EMCA) utility

 

Enterprise Manager Grid Control

  • Install and Patch Enterprise Manager Grid Control software
  • Configure the Enterprise Manager repository
  • Create Enterprise Manager Grid Control users
  • Use Enterprise Manager to modify a database configuration
  • Configure Enterprise Manager to modify database availability
  • Create and manage jobs
  • Create and monitor alerts
  • Create notifications
  • Implement Grid Control and Database Control
  • Choose the appropriate tablespace type for the intended use
  • Create Scheduler jobs
  • Create schedules
  • Assign jobs to windows
  • Create programs
  • Create job classes
  • Install the Enterprise Manager Grid Control infrastructure
  • Deploy Enterprise Manager Grid Control agents
  • Configure Grid Control for business requirements

 

Managing Database Availability

  • Mantain recovery catalogs
  • Configure Recovery Manager
  • Use Recovery Manager to perform database backups
  • Use Recover Manager to perform complete database restore and recovery operations
  • Configure RMAN
  • Create different types of RMAN backups to cater for different performance and retention requirements
  • Set Flashback Database parameters
  • Configure a Fast Recovery Area
  • Perform various recovery operations using Flashback technology

 

Data Management

  • Manage Materialized Views to improve rewrite and refresh performance
  • Configure and manage distributed materialized views
  • Create and Manage encrypted tablespaces
  • Manage Transport of tablespaces across platforms
  • Configure a schema to support a star transformation query
  • Administer external tables
  • Implement Data Pump export and import jobs for data transfer
  • Implement Data Pump to and from remote databases
  • Configure and use parallel execution for queries
  • Use SQL*Loader
  • Administer, manage and tune parallel execution

 

Data Warehouse Management 

  • Administer partitioned tables and indexes using appropriate methods and keys
  • Perform partition maintenance operations
  • Maintain indexes on a partitioned table
  • Implement securefile LOB
  • Create and manage LOB segments
  • Implement fine-grained access control
  • Create and manage contexts
  • Administer flashback data archive and schema evolution

 

Performance Management

  • Administer Resource Manager
  • Use Result Cache
  • Use multi column statistics
  • Gather statistics on a specific table without invalidating cursors
  • Use partitioned indexes
  • Administer and tune schema object to support various access methods
  • Interpret execution plan
  • Use SQL tuning tools and features
  • Use SQL Tuning Advisor
  • Use SQL Access Advisor
  • Use SQL Performance Analyzer
  • Configure baseline templates
  • Use SQL Plan Management feature
  • Implement instance caging

 

Grid Infrastructure and ASM

  • Install Oracle Grid Infrastructure
  • Create ASM Disk Groups
  • Create and manage as ASM instance
  • Implement ASM failure groups
  • Creating ACFS File System
  • Start, stop, configure and administer Oracle Grid Infrastructure

 

Real Application Clusters

  • Install the Oracle Database 11gR2 software
  • Configure ASM for the shared disks and create a clustered database
  • Configure archiving
  • Configure services using both Manual and Policy Managed methods

 

Data Guard

  • Create Physical Standby Database with real-time apply.
  • Configure the data guard environment to reduce overheads of fast incremental backups on the primary database
  • Configure the Observer
  • Switchover and switch back
  • Configure connect time failover
  • Convert the standby to a snapshot standby
  • Configure archivelog deletion policy for the Dataguard configuration

 

更多信息

来自Oracle大学教师建议

  • 拥有最少3-4年Oracle经验。拥有5年以上相关工作经验参与者将更加适合。
  • 请确认你在建议的最低技能经验年限下,已拥有所有相关技能。
  • 在考试中请准备使用非在线查询文档来帮助你修正你的命令语法错误。
  • 即便你知道如何在图形化下完成任务,也请准备一份命令行解决方案,因为并不是每个考试部分都能使用图形界面(GUI) 。
  • 对于所有的考点,请花时间进行动手练习,特别是那些你不常用到的技能。
  • 你必须具备将抽象概念需求变成可执行的特定命令的能力。这里你的实际工作经验及动手实验能力将对你能否成功通过考试非常关键。

 

推荐最低技能经验要求

  • 3-4年企业级Oracle职业经验
  • 拥有丰富的备份,恢复及还原操作经验
  • 精通SQL
  • 熟悉以下Linux命令的使用:
    • 格式化命令以及基本操作系统执行命令
    • 建立及浏览目录结构
    • 拷贝、移动和删除等文件管理命令
    • Linux环境文本编辑器
    • 环境变量设置
  • 能熟练使用以下Oracle可执行工具:
  • RMAN工具
  • Oracle Net Manager
  • Oracle Net Configuration Assistant
  • OEM
  • Listener工具
  • OMS
  • Oracle密码工具
  • DBCA
  • DGMGRL (for 11g OCM)
  • 熟练使用Oracle Enterprise Manager
  • 熟练使用Oracle Net Manager和Oracle Net Configuration Assistant来配置网络
  • 拥有对Oracle企业服务器技术及特性应用到高级知识技能
  • 能熟悉浏览Oracle文档
  • 熟练使用Mozilla 1.6浏览器软件

 

考试注册

  1. 选择你希望参加的认证考试计划事件
  1. 按国家及考试时间安排来进行“注册”。
  2. 结账。
  3. 如果在当地找不到OCM考试举办事件,请联系当地的Oracle大学代表以获取相关信息。

 

考试进入考场时间

考试于上午9点开始。计划于下午6点或更早结束。但不保证是否会更完,这完全取决于当时监考官的判断。

请安排好你的旅行计划,留足足够的考试时间以保证通过每个环节。一旦某个技术环节考试开始,参与者将不被允许离开考场。你必须等待直到下一个环节 。

 

考试身份照证件

所有参与者需提供有政府签发的效身份照证件及签名后方可被允许参加考试。有效身份照证件包括护照,驾照,军官证或其他政府发放的身份证件。

 

考试 – Oracle测试ID

每个考生必须提供9位Oracle测试ID来初始化OCM测试。Oracle测试ID为PearsonVue网站中和考生Oracle测试历史记录相关联唯一ID号。

强烈要求每个OCM考生在考试前一周就落实好Oracle测试ID号。可查阅以下链接来了解如何获取你的Oracle ID:

http://education.oracle.com/education/downloads/stepstoobtainyouroracleid.pdf

 

考试考试时

考试将会在一个指定的Oracle大学教室环境中,以公正和安全的方式进行。Oracle监考官将发起每个考试环节,并坚守至技能环节结束。监考官并不会对考试打分,也没有权利解除到打分信息。

 

每个考生会被随机指定一台服务器作为其考试机。服务器都将与Internet以及局域网隔绝以保证私密。每个考生都有责任来有效管理数据库及运行在其上面的实例环境。保证能有效从故障恢复技术环节中还原数据库。如果考生不能从故障恢复环节中恢复数据库的话,将会影响到之后技能环节的完成。

 

所有技术环节都有时间限制,并要求考生以最佳实践方案来成功完成被分配的任务。每个技术环节都会明确告知考生必须达成的任务最终状态结果。

 

在进行考试环节时,不允许考生自带文档或笔记,也不允许考生互相合作。手机,纸张,PDA等类似电子设备都不允许被带入考场。参与者可以使用考场桌面上提供的笔记板来做一些记录。

考生必须同意Oracle认证协议中的内容。其指导协议可从Oracle Certification Program Candidate Agreement链接中找到。任何参考OCM考试的考生不得在外泄露考试内容,这将违反“Oracle的欺诈行为政策”并导致考生OCP或OCM认证被吊销的处罚。

 

考试得分

考生会因完成的任务以及从各种故障恢复场景中恢复数据库而得分。在每个场景结束,数据将从每个考生环境中被收集起来,最终确定总分。在一些场景,考生可能会收到部分得分,然而,如果在某个场景中无法恢复将导致最终整个场景得分为0。监考官不负责打分也不会在考试时接触到任何得分信息。

 

考生会在4~5周后被告知分数。获得分数后,通过的考生将得到Oracle认证大师证书。没有通过的考生则需要在一段时间之后参加重考。

 

考试取消考试

Oracle认证大师测试由Oracle大学提供,并基于Oracle大学法律条款及政策来管理执行。

 

OCM认证的好处

OCM认证代表了你已经具备了担当高级企业DBA这样一个挑战型角色的能力。OCM能给予你得到更多行业机会。充分利用OCM认证来分出和他们的不同, 以助力您得到工作或项目机会。OCM在包含了OCP认证的好处之外,还能给你带来的好处有:

  • 区分认证级别
  • 被记录入OCM专家档案
  • 可在商业名片,著作等使用OCM logo
  • 一件绣有数据库OCM logo的衣服

Oracle 11g OCM Master考试指南汇总

Oracle 11g ocm master考纲复习:使用RMAN创建备份

 本文固定链接:https://www.askmac.cn/archives/oracle-11g-ocm-rman.html

 

3.1目标

在完成这个课程之后,你能够做下列事情:

  • 创建镜像文件备份
  • 创建一个全备份
  • 创建一个数据库全备份
  • 开启快速增量备份
  • 创建多个备份集
  • 备份一个备份集
  • 创建一个长期的归档备份
  • 创建一个多节的备份
  • 创建一个压缩的备份
  • 创建一个加密的备份
  • 备份的维护和报告

3.2 创建备份集

RMAN> BACKUP AS BACKUPSET FORMAT ‘/BACKUP/df_%d_%s_%p.bus’ TABLESPACE hr_data;

 

RMAN 可以存储备份以RMAN特有的格式称作备份集。一个备份集是那些被称作备份片的文件的集合,每个备份片可能包含一个或多个数据文件的备份。

注意:FORMAT参数为每个备份片产生的文件名称指定了格式。这个FORMAT也可以在ALLOCATE CHANNEL和CONFIGURE中被指定。

 

3.3创建备份镜像

RMAN> BACKUP AS COPY DATAFILE ‘/ORADATA/users_01_db01.dbf’;

RMAN> BACKUP AS COPY ARCHIVELOG LIKE ‘/arch%’;

一个镜像备份是数据文件、归档日志或控制文件的克隆。一个镜像备份可以使用BACKUP AS COPY命令或者操作系统命令创建。当你使用RMAN BACKUP AS COPY命令创建一个镜像文件时,服务会话会验证文件中的块并且在控制文件中记录拷贝信息。

一个镜像拷贝可以有以下特性:

  • 一个镜像拷贝只能写入到磁盘。当存在大文件的时候,拷贝可能会化很长时间,但是恢复时间也相应的减少,因为可以在磁盘上进行复制。
  • 如果文件存放在磁盘,你可以在RMAN中使用立即使用switch命令,就等同于alter database RENAME FILE sql 命令。
  • 在镜像备份中,所有的块都被拷贝,无论里面是否包含数据,oracle数据库进程复制文件和执行另外的操作,例如在控制文件中记录拷贝和检查当前块的信息。为了加快拷贝速度,你可以使用NOCHECKSUM参数。RMAN 默认会给每个备份块计算校验和,并将其一起备份。当进行备份恢复时,会校验校验和。更多关于BACKUP命令中使用NOCHECKSUM选项的信息,可以参考Oracle Database Backup and Recovery Reference。
  • 一个镜像备份可以是全库或者一个增量级别为0的备份,因为其总是包含所有块。如果这个镜像拷贝被增量备份集联合使用,你需要指定级别0的选项。

在图示中,创建镜像拷贝如下:

  • /ORADATA/users01_db01.dbf 数据文件的备份
  • 归档文件的备份

3.4 创建一个整库备份

一个整库备份可以以备份集或者镜像拷贝的形式,包含所有的数据文件和控制文件。参数文件或者归档日志文件是随意的。使用RMAN进行全库的镜像拷贝需要挂载或打开数据库,运行RMAN,执行图示中的BAKUP命令。在进行归档备份的时候,你可以选择性地使用DELETE INPUT选项。这个可以使RMAN在备份完它们后,将归档文件删除。在没使用闪回恢复区时,这个选项对于你管理空间,删除文件来减轻空间压力是很有效的。在这种情况下,图示的命令可以像这样:

RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;

你应该执行CONFIGURE命令来生成备份:

  • CONFIGURE DEFAULT DEVICE TYPE TO disk;
  • CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY;
  • CONFIGURE CONTROLFILE AUTOBACKUP ON;

你也可以使用下列命令,为数据库中所有的数据文件和控制文件创建一个备份(可以是备份集或镜像拷贝):

RMAN> BACKUP COPY OF DATABASE;

默认情况下,RMAN在执行BACKUP命令时是串行的。但是你可以使用下列方式为拷贝设置并行:

  • 使用CONFIGURE DEVICE TYPE DISK PARALLELISM n命令,n代表并行度
  • 分配复合通道
  • 指定一个BACKUP AS COPY 命令和清理多个文件。

 

 

 

 

 

3.5用压缩未使用块来减少备份使用空间

下列块可能在备份时候被跳过:

  • 未分配的块:这些是在数据文件高水位之上的块。
  • 未使用的块:这些是被分配的块,但是形成为段中一部分的块。

 

当发生确定类型的备份时,RMAN能够跳出这些块。没有被分配的块可能被跳过,它们那些尚未被分配,在高水位之上的块。同样地,在下面情况满足的情况下,一些分配的块但是没有成为段(没被使用的块),也可能被跳过:

  • 没有指定一个确定恢复的时间点。
  • 数据文件存放在本地管理的表空间中。
  • 数据文件是在一个以备份集形式或0级的增量的形式中备份。这些备份类型在下列图示中列出。
  • 备份是存放到磁盘,或者是Oracle 安全备份作为媒体管理器。

 

3.6 RMAN备份类型

  • 一个全备份包含所有使用的块
  • 一个0级的增量备份等价于一个全部备份使用level 0的标记。
  • 一个累积等级是1的增量备份只包含那些在上一次等级0增量备份到现在,改变过的块。
  • 一个差量等级是1的增量备份只包含那些上一次增量备份到现在,改变过的块。

 

全备份

一个全备份于一个整库备份时不同的。一个所有数据文件的备份,是一个包含文件中所有使用数据块的备份。RMAN会把所有的数据块拷贝到备份集或者镜像拷贝中,跳过那些从未被使用的数据块。对于全部的镜像拷贝,所有的文件是精确的复制。一个全备份不能成功增量备份策略中的一部分,即它不成为随后增量备份的前置备份。

 

增量备份

一个增量备份可以是等级0的备份,0级备份包含那些在数据文件中,没使用块之外的所有的数据块。也可以是等级1的备份,只包含之前最早的一次备份到现在备份发生变化的数据块。一个0级的增量备份在物理程度上和一个全备份是一样的。唯一的区别是0级的增量备份可以用于后续增量等级为1的备份,而一个全备份不能用于等级1的备份。

在BACKUP命令中指定INCREMENTAL关键字来指定一个增量备份。你可以指定INCREMENTAL LEVEL为0或1。

RMAN可以创建多级增量备份,如下:

差异:这个是默认的增量备份类型,只备份那些从上一次1或者0级的增量备份,到现在发生变化的数据块。

累积:备份最近一次0级备份以来,所有发生变化的数据块。

 

例子

使用下列命令,完成一个0级的增量备份:

RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

使用下列命令,完成一个差异增量备份:

RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;

使用下列命令,完成一个累计增量备份:

RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

如果没有指定full或INCREMENTAL,RMAN会默认进行一个全备份。在使用备份集备份数据文件时,即使是全备份,那些从来都没写入块会被跳过,完成未使用块的压缩。

一个全备份对后续增量备份来说没有用处,它不会考虑任何地增量备份策略,尽管一个全镜像拷贝,可以使用RECOVER命令,来使用增量备份来进行一个增量的更新。这个在课程”“Using RMAN to Perform Recovery”中涵盖。

注意:可以在NOARCHIVELOG模式下对数据库进行任何形式的备份(全部或增量)–如果,必须,这个数据库是不能打开的。还要注意只能恢复到上一次的备份。要恢复到最后提交的事务,数据库必须处于归档模式。

 

3.7 快速增量备份

实现块变化跟踪:

  • 保留从上一次备份以来块发生的变化。
  • 在日志生成的时候,将这些记录些入到文件。
  • 在备份的时候 ,会自动去应用,这样使得备份更快。

 

增量备份的目的,就是只备份那些,从上一次最早备份以来发生变化的数据块。你可以使用RMAN对数据文件,表空间,或者整个数据库进行增量的备份。当进行一个增量备份,RMAN会扫描数据文件中每个块,找出在上一次备份后发生了变化的数据块。因为只备份那些改变过的块,这样备份就会很小。这样在恢复的时候就会更快,因为只有很少的一部分块需要被修复。

在启用块跟踪之后,执行增量备份会更快。那些每个块的变化会被跟踪,然后写入到一个物理文件中。当执行增量备份时,RMAN可以查看这些记录块变化的跟踪文件,备份的时候只应用这些块,避免了去扫描所有的块,找出从上次备份以来发生变化的块的步骤。这样就使得增量备份更快了。

维护这个跟踪文件是全自动的,不需要人工的干预。这个记录块变化的跟踪文件的大小正比于于:

  • 数据库的大小,字节为单位
  • RAC环境中启用的线程数
  • 使用跟踪文件记录过去备份的数目

块变化跟踪文件最小的值是10MB,任何新的空间都是以10MB为单位来分配。oracle 数据库默认不记录块改变的信息。

 

3.8:开启快速增量备份

ALTER DATABASE

{ENABLE|DISABLE} BLOCK CHANGE TRACKING

[USING FILE ‘…’]

你可以在数据库控制首页上开启块变化跟踪。导航栏性能>备份设置>策略。如果DB_CREATE_FILE_DEST在初始化参数中设置了,那么不用再设置跟踪文件的路径,因为OMF会自动使用DB_CREATE_FILE_DEST的路径。当然,你也可以指定跟踪文件的名称,和任意的一个自定义的路径。

你也可以是用ALTER DATABASE 命令来开启或禁用这个特性。如果跟踪文件和数据文件存放在一个区域,当你禁用块跟踪时,这个文件会自动被删除。你可以使用alter database name 为这个跟踪文件改名。在你为跟踪文件改名的时候,数据库必须处于mout状态。ALTER DATABASE RENAME FILE命令会在控制文件中更新,使之关联到新的路径。你可以使用下列语法来改变跟踪文件的路径:

ALTER DATABASE RENAME FILE ‘…’ TO ‘…’;

注意:RMAN不能管理备份恢复中的跟踪文件,出于这个原因,你不要将这个文件放到闪回恢复区。

3.9  块变化跟踪的监控

SELECT filename, status, bytes

FROM v$block_change_tracking;

 

SELECT file#, avg(datafile_blocks),2avg(blocks_read), avg(blocks_read/datafile_blocks)* 100 AS PCT_READ_FOR_BACKUP,avg(blocks)

FROM v$backup_datafile

WHERE used_change_tracking = ‘YES’ AND incremental_level > 0

GROUP BY file#;

 

V$BLOCK_CHANGE_TRACKING视图显示了跟踪文件的存放地,块跟踪的状态(开启或禁用),文件的大小(字节为单位)。

在V$BACKUP_DATAFILE中有效的显示了跟踪文件在增量备份引起的最小的I/O(CT_READ_FOR_BACKUP字段)。一个高的值,说明RMAN在进行增量备份时会读取更多的块。你可以减少2次增量备份的时间来降低这个比例。

一个简单查询$BACKUP_DATAFILE的输出如下:

FILE# BLOCKS_IN_FILE BLOCKS_READ PCT_READ_FOR_BACKUP BLOCKS_BACKED_UP

—– ————– ———– ——————- —————-

1 56320 4480 7 462

2 3840 2688 70 2408

3 49920 16768 33 4457

4 640 64 10 1

5 19200 256 1 91

 

 

3.10 创建多路备份集

为了创建多路备份集,使用:

  • CONFIGURE … BACKUP COPIES
  • BACKUP…COPIES

 

RMAN可以在一个备份中同时生产4个副本,每一个都是另一个的精确复制。一个备份集的副本是在备份集中每个备份片的复制,每一个复制都用唯一的复制号(例如,0tcm8u2s_1_1 和 0tcm8u2s_1_2)。

在大多数情况,最简单的创建多个备份集,是使用BACKUP…COPIES或CONFIGURE … BACKUP COPIES来指定多个备份集。在磁盘通道,FORMAT选项中指定多个值来直接进行到多个物理磁盘上的多个拷贝。在SBT 通道,如果你使用的媒体管理器支持2个版本的SBT API,那么媒体管理器会自动的将每个副本放入不同的的介质(例如,不同的磁带)。

注意:系统上的SBT API是被MML开发商所定义的,他们使得MML可以和RMAN进行沟通。

注意,不能在闪回区中进行多个备份集,而且只能用于备份集,不能用于镜像拷贝。如果你使用BACKUP… COPIES 进行 镜像拷贝,你会收到一个错误。CONFIGURE…BACKUP COPIES的配置会被镜像拷贝忽略。

多路备份一般被磁带备份使用。

 

3.11 使用CONFIGURE BACKUP COPIES创建多路备份

使用CONFIGURE … BACKUP COPIES命令配置,在你指定设备类型上创建指定数目的完全相同的备份集。这个配置使用与于所有的备份,除了控制文件自动备份(因为自动地控制文件备份总是生成一个单独的副本)和使用BACKUP BACKUPSET命令的备份集的备份。

注意:你必须有自动通道的配置

安照下列步骤使用CONFIGURE BACKUP COPIES命令创建多路备份集:

1.为数据文件和归档文件,在所希望的设备类型上指定一个拷贝的数目。

2.执行BACKUP命令。

3.执行LIST BACKUP 命令来验证你的备份。

注意:之前的备份命令不会受COPIES配置的参数的影响,它只会产生在磁盘上产生一份单独的备份。

 

 

3.12 使用BACKUP COPIES创建多路备份集

RMAN> BACKUP AS BACKUPSET DEVICE TYPE sbt COPIES 2 INCREMENTAL LEVEL 0 DATABASE;

 

你可以使用BACKUP 命令中的COPIES选项覆盖COPIES或其他的多路参数,来创建多路备份集。

执行下列步骤,使用BACKUP COPIES创建多路备份:

1.在BACKUP 命令中使用COPIES指定需要生成相同副本的数目。

2.执行LSIT BACKUP 命令来验证你的备份。

 

 

3.13 使用备份集创建备份

RMAN> BACKUP DEVICE TYPE DISK AS BACKUPSET DATABASE PLUS ARCHIVELOG;

RMAN> BACKUP DEVICE TYPE sbt BACKUPSET ALL;

使用RMAN BACKUP BACKUPSET为之前创建的备份集进行备份。只有那些在磁盘设备上生成的备份集,可以用RMAN备份。这个备份集可以使用任何合适的设备类型来备份。

这个BACKUP BACKUPSET 命令使用默认的磁盘通道,来进行磁盘间的备份集拷贝。从磁盘到磁带的备份,你必须配置或手动指定一个非磁盘类型的通道。

 

 

3.14 备份只读表空间

只读表空间备份s可以考虑:

  • 在这个只读表空间没备份满足保留策略的时候,备份优化会让RMAN去备份这个只读表空间。
  • 如果你改变这个表空间变为可读写的,请立即备份它。
  • 你可以在RMAN BACKUP 中使用SKIP READONLY 选项来跳过只读表空间。

 

因为只读表空间不会被写入,所以没有必要对它们像可读写的表空间那样,不断地进行备份。你可以在BACKUP命令中,使用SKIP READONLY选项,来使RMAN知道,哪些只读表空间不用备份。

 

3.15 备份归档:概念

如果你需要对特定的一段时间维护一个在线的备份,RMAN通常认为,你可能想完成一个,从当前备份到之前任意时间点的恢复。为了满足这个场景,RMAN在这个时期内会保留归档日志文件。但是,你可能有一个简单的需求,保存特定的备份(必须保证能够一致性恢复)在指定的一段时间内–例如:2年内。你没有恢复到这个时间点之后的需求,但是你希望以后能够使用备份恢复到一个确切地时间点。你也希望维护保留策略,保持备份区不那么混乱,因此恢复到2年之前是不可接受的。这是一个在商业会议和法律领域中,对数据保留的一个常见需求。

归档备份解决了这个问题。如果你标记一个备份时归档备份,这个属性会覆盖掉以这个备份为目标的,其他任何保留策略。你可以保留这个归档备份,直到超过了你指定的时间之后,才会过期,或者永远不过期。如果你想指定更早的时间,你需要使用备份恢复目录。使用KEEP子句创建一个归档备份,相当于此时间点上数据库的快照。那些在修复备份保持一致性时所需要的日志文件,会被保留下来。在执行备份后,运行RESTORE POINT子句指定了多少日志文件需要保留(保留足够的日志来修复备份到RESTORE POINT指定的时间点 )。

一个归档备份也可以包含,备份中需要修复时所需的所有文件。RMAN包含数据文件,归档日志文件(只是那些在线备份,恢复时需要的),和一些相关的自动备份的文件。所有的文件必须存放在相同的媒体中(或磁带组)。

你也可以创建一个指定的修复点,这个修复点和归档备份有相同的SCN。本质上给了创建备份时的时间点一个更有意义的名称。

在归档备份创建之后,它会在指定的时间内保留。即使你有一个很短的保留时间窗口,并且运行DELETE OBSOLETE命令,归档备份仍然会保留。

这个备份时数据库在某个时间点的一个快照,可以用来在另外的主机上,修复一个数据库来作为测试机。

注意:归档备份不能写入到闪回恢复区。如果你有一个归档备份,你必须使用FORMAT 来指定一个另外的路径。

 

 

3.16 使用EM创建归档备份

使用EM创建一个归档备份,执行下列步骤:

1.选择可用性>备份计划>自定义备份计划。

2.安装自动备份计划向导提示操作,直到进入设置页面。

3.点击覆盖当前设置,然后到政策栏。在覆盖保留策略的选项中,你可以选项保存备份一个指定的天数。一个修复时间点就会基于备份作业名生成。你如果想为备份文件指定不同的路径,可以选择设备栏进行操作。

3.17 使用RMAN创建归档备份

当数据库在open模式,指定KEEP子句可以让数据文件和归档日志备份都被保留

KEEP {FOREVER | UNTIL TIME [=] ‘ date_string ‘} [RESTORE POINT rsname]

使用下列RMAN语法来创建 归档备份:

BACKUP … KEEP {FOREVER|UNTIL TIME ‘SYSDATE + <n>’} RESTORE POINT

<restore_point_name>

until time 子句可以让你在进行归档备份的时候,不再受保留策略的影响。你可以指定特殊的选项FOREVER,这就意味着这个备份是一个归档备份,直到你采用其他的动作改变它。

可选的,使用RESTORE POINT子句来为这个相关备份指定修复点的名称。

 

 

 

 

3.18 管理数据库的归档备份

1.把数据库备份存档:

RMAN> CONNECT TARGET /

RMAN> CONNECT CATALOG rman/rman@catdb

RMAN> CHANGE BACKUP TAG ‘consistent_db_bkup’ KEEP FOREVER;

2.改变数据库副本的状态:

RMAN> CHANGE COPY OF DATABASE CONTROLFILE NOKEEP;

这个change命令可以关联配置的保留策略,改变备份或拷贝与的豁免状态。例如,你可以指定CHANGE … NOKEEP可以使备份从保留策略豁免当前属性,得到OBSOLETE状态。

第一个离职是改变一致性备份成为一个归档备份,作为离线存储。因为数据库是一致性的,因此,不需要恢复,你不需要在备份中保存归档日志。

第二个例子是指定任何长时间的,数据文件和控制文件的镜像拷贝,会丢失他们豁免属性,并且能够从当前的保留策略中得到过期状态。这个声明从本质上。从备份文件上移除了归档属性。如果没有特别指定标记,例如这个例子,这个change适用于所有指定类型的备份。

注意:RESTORE POINT选项在CHANGE中无效,因为没办法去创建一个已经过去的修复点(在备份完成后)

 

3.19 多节备份:概述

oracle 数据文件可以达到128TB。通常情况下,RMAN是按一个完整的文件作为最小的单元来备份。这样,对于那些大文件来说是不实际的。RMAN可以将大文件分解成独立的部分,来进行备份和恢复。你可以创建多节备份,能够将文件生成的备份集分解成独立的文件。这个只适用于备份集,不适用于镜像拷贝。

每个文件部分是文件中连续的,一系列的块。每个文件部分可以单独地处理,可以串行或并行。把一个文件分割成独立的部分,再进行备份可以提升备份的性能,同时也允许将大文件的备份重新启动。

一个多节的备份任务产生了一个多片的备份集。每个片包含一个文件部分。所有在一个分级备份中的文件部分,出了最后一个部分可能不同之外,所有的部分都是相同的大小。每个文件最多能有256个部分。

注意:在备份大文件的时候,你不应该在一个很少磁盘数量的备份中,使用一个大的并行度,这样反而达不到并行的目的;多个同时访问相同设备将产生竞争。这个功能是RMAN内置的。在oracle 11g中不需要在普通安装之外再进行安装。COMPATIBLE参数至少要设置为11.0,因为更早的版本不支持多节备份。

 

 

3.20 使用RMAN 创建多节备份:

BACKUP <options> SECTION SIZE <integer> [K | M | G]

VALIDATE DATAFILE <options> SECTION SIZE <integer> [K | M | G]

 

例子:

RMAN> BACKUP DATAFILE 5 SECTION SIZE = 25M TAG ‘section25mb’;

backing up blocks 1 through 3200

piece handle=/u01/…/o1_mf_nnndf_SECTION25MB_382dryt4_.bkp

tag=SECTION25MB comment=NONE

backing up blocks 9601 through 12800

piece handle=/u01/…/o1_mf_nnndf_SECTION25MB_382dsto8_.bkp

tag=SECTION25MB comment=NONE

 

这个BACKUP 和 VALIDATE DATAFILE 命令支持下列选项:

SECTION SIZE <integer> [K | M | G]

用这个来指定你计划为每个备份分配的大小。这个选项是备份命令和备份分级的规范,这样你可以在相同的备份任务中,给不用的文件应用不同的部分大小。4

在图示的例子中,备份文件号是5的数据文件,分节大小被指定为25MB。这个数据文件有100MB,所以4个部分被创建。注意,那些块范围,相邻块信息也被写入分节文件中。

 

查看关于多节备份的元数据

  • V$BACKUP_SET 和 RC_BACKUP_SET视图中的MULTI_SECTION字段表明了这个备份是否是多节备份。
  • V$BACKUP_DATAFILE 和RC_BACKUP_DATAFILE视图中的SECTION_SIZE字段指定了在一个分节备份中,每个部分的块的数量。0表示是整个文件的备份。

 

 

 

 

 

3.21 压缩备份

RMAN 可以在生成备份集的时候采用2进制压缩。

  • 除了未使用块压缩之外,使用的块也能够进行压缩。
  • 默认情况,RMAN使用BZIP2的压缩算法。
  • BZIP2于ZLIB在下列2点有不同:

–其有更好的压缩比率。

-其比较慢。

  • 对于DBA来说,在使用一个压缩备份修复时,不需要额外的操作步骤。

 

为使用块的压缩是减少那些块写入到备份,二进制压缩可以使用一些算法在写入数据的时候压缩。最有效的压缩算法是ZLIB和BZIP2

ZIP 使用更小的CPU.BZIP2则提供了最好的压缩比。BZIP2比ZIB更消耗CPU,但是产生的备份会更小。在使用ZLIB时,初始化参数COMPATIBLE应该设置为11.0.0 或者更高,其需要oracle 建议的压缩选项。

你不需要在修复的时候额外的进行操作。注意,压缩和解压缩都需要CPU资源。所以创建一个压缩备份和使用备份恢复,都可能会话很长的时间,并且还暂用很多系统资源。

在选择压缩算法的时候,综合考虑你的磁盘空间和动态的系统参数例如:cpu和内存。

 

3.22 加密备份

你可以使用下列3种方式来加密备份:

  • 透明加密:这个方式是使用钱包,是默认的模式。
  • 密码加密:这个方式加密依赖于密码.不需要配置一个钱包。在使用这个备份进行修复的时候你必须知道密码。
  • 双模式加密:透明加密和密码加密都使用.在修复中,两种模式的加密都可以被使用。这个模式在你经常进行本地修复,也有时会备份到其他地方的时候,比较有用。

修改备份设置使用:SET ENCRYPTION。下面是使用密码加密的例子;

RMAN> SET ENCRYPTION IDENTIFIED BY mypassword;

RMAN> BACKUP DATAFILE 5;

RMAN> SET DECRYPTION IDENTIFIED BY mypassword;

 

RMAN 使用透明加密,将加密数据写入到数备份集,然后在修复操作的时候解密。为了再磁盘上创建一个加密的备份机,数据库需要使用高级安全选件。为了在磁盘上直接创建加密文件,RMAN必须使用 oracle安全备份 SBT 接口,但是不需要高级安全选件。

如果你想使用透明加密,钱包必须被创建,并且配置数据库使用钱包。这个和TDE使用相同的钱包。钱包必须在使用加密或TDE之前创建。

增加一个完整的配置到SQLNET.ORA 文件中:

ENCRYPTION_WALLET_LOCATION =

(SOURCE =

(METHOD = FILE)

(METHOD_DATA =

(DIRECTORY =

/oracle/dbsid/admin/pdcs11/wallet)))

创建一个简单的密码保护钱包,如下列命令:

ALTER SYSTEM SET [ENCRYPTION] KEY IDENTIFIED BY “welcome1″;

注意:使用oracle安全备份(OSB)进行加密可以配置所有备份被OSB加密,无论客户端有什么样类型的加密请求。更多关于OSB 加密的信息,可以参考:Secure Backup Administrator’s Guide

 

 

3.23 备份恢复文件

  • 仅备份那些在闪回恢复区的文件:

RMAN> BACKUP RECOVERY AREA

  • 备份所有的恢复文件

RMAN> BACKUP RECOVERY FILES

 

这里有两种备份备份恢复数据的方式。BACKUP RECOVERY AREA 命令 备份所有能够被发现的,当前或者之前存在于闪回恢复区的文件。BACKUP RECOVERY FILES 命令备份所有的恢复文件,即使它们不存在闪回恢复区中。你在使用这个之后,为数据文件,例如:控制文件或者那些不在闪回恢复区中的数据库文件,增加了额外的保护,防止丢失。

 

默认情况下,备份优化对这二个命令时启用的,即使你使用CONFIGURE命令禁用了备份优化。也就是说在使用这个命令的时候,只有那些没有被备份的恢复文件会进行备份。你可以使用force选项来强制备份所有文件。

你不能为这个命令指定DEVICE TYPE DISK设备类型。

注意:RMAN只备份数据库文件:数据库文件,日志文件,控制文件,参数文件,归档文件和这些文件的备份。放置其他的操作系统文件到闪回恢复区,不会被恢复区备份所包含。

 

3.24 使用媒体管理器:

在备份数据库的时候使用磁带存储,RMAN需要 oracle安全备份或一个媒体管理器。

媒体管理器是一个实用的程序,在备份,修复,恢复的时候,用于加载,标签,卸载一系列的媒体设备(例如磁带驱动)。oracle 服务从调用MML软件程序,从那些被媒体管理器控制的获取到媒体来进行备份和修复数据。

注意,oracle数据库服务,不需要在访问磁盘的时候连接MML软件。

oracle 备份解决程序(BSP)提供了一系列媒体管理的产品,并且都复合oracle的MML规范。软件兼容MML可以使得oracle 数据库会话备份数据到一个媒体管理,和从媒体管理器中请求恢复备份。检查你的媒体供应商确定是不是oracleBSP中的一员.

在你可以用RMAN调用媒体管理器之前,你必须安装媒体管理软件和确保RMAN可以和其通信。这些程序的指令,可以参考媒体管理器的软件厂商的文件。

根据你安装的产品,执行以下基础步骤:

1.在目标机器或生产网络上,安装和配置媒体管理软件。在这个阶段不需要RMAN集成。

2.确保你可以不使用RMAN在目标数据库主机上创建操作系统的文件。这个步骤使得以后发现解决问题更简单了。参考你的媒体管理器文档,学习如何使用媒体管理器来进行文件备份。

3.为了oracle数据库集成,获取和安装第三方的媒体管理模块。这个模块必须包含oracle 数据库服务访问这个媒体管理器的库文件。

 

使用媒体管理器完成备份和修复操作

下面的恢复管理脚本执行了一个数据文件的备份,使用媒体管理中的磁带设备:

run {

# Allocating a channel of type ‘sbt’ for serial device

ALLOCATE CHANNEL ch1 DEVICE TYPE sbt;

BACKUP DATAFILE 3;

}

当恢复管理器执行这个命令,它发送一个备份请求给oracle数据库会话来执行备份。这个oracle 数据库会话识别一个媒体管理的设备作为通道,并请求媒体管理器去加载一个磁带来进行写出。

 

在每个磁带上,都有标签,保存的跟踪记录和文件的命令。媒体管理器还处理修复操作。当修复一个文件的时候,下面的步骤发生 :

1、oracle 数据库服务器请求修复一个特定的文件。

2、媒体管理器识别磁带保存的文件,并从磁带上读取这些文件。

3、媒体管理器将消息传回给数据库会话。

4、数据库服务将文件写到磁盘。

 

3.25 执行代理拷贝

在RMAN BACKUP命令中使用PROXY选项,来请求一个MML执行文件的拷贝。

一些媒体管理产品可以完全管理所有数据,在oracle 数据文件和备份设备之间移动。一些产品,在存储和媒体子系统之间使用高速连接,这样可以减少主数据库服务器的备份压力。在LAN中拷贝的时候通过SAN时很有益的。RMAN在这一点上是在图片之外的,仅仅通过LAN 从MML通信一些状态。

3.26 创建一个ORACLE 建议的备份

在你设置一个oracle建议备份策略的时候,EM使得这更加简单了。这个策略可以保护你的数据,能够恢复到24小时内的任意时间点,还可以延长到48小时,具体的时间取决于你最后一次创建备份的时间。oracle建议备份策略使用增量备份和增量更新备份的特性。当从归档日志中应用数据库变化的时候,这使得恢复更加快速。

 

建立一个oracle建议策略,从导航栏到维护页面。在备份/恢复的区域,选择备份计划。这个备份策略选择可以从oracle建议备份中选择,也可以是自定备份策略。oracle建议备份在第一次备份的时候是一个全库的复制。因为它是一个整库备份,你可以考虑让其在一段时间是活动的。在这之后,每天在磁盘上会进行一个增量备份。可选地,创建每周的磁带备份,备份所有恢复相关的文件。

因为这些备份时在磁盘上保留的,你可以执行一个全库的恢复或者在24时内的任意时刻,进行时间点的恢复,这是最低限度。这个恢复时间可能可以延长到48小时。这时因为在一个指定的天理创建一个备份之前,在创建时间 N-1的那个时间点的备份仍然存在。(意思就是只会保留2个备份。1号,2号备份,当3号备份完毕后,就会干掉1号的备份,那么在3号备份之前,是可以恢复到48小时之前的,应为此时1号的备份还没被干掉,这个是默认的策略)

 

3.27 管理备份:报告

使用下列RMAN命令来获取你备份的信息:

  • LIST:显示在资源库中备份集,代理拷贝,镜像拷贝的信息。
  • report:为资源库生成一个详细的分析。
  • report need backup: 列出那些需要备份的所有数据文件。
  • report obsolete:识别那些安全备份保留策略不再需要的文件 。

使用RMAN list 命令来显示在资源库中备份集,代理拷贝,镜像拷贝的信息 。使用这个命令列出:

  • 那些在RMAN 资料库中没有AVALIABLE状态的备份和副本
  • 那些可以被修复操作使用的,可用的备份和副本中的数据文件
  • 包含特定数据文件列表or特定表空间的备份机和副本
  • 那些被标签,完成时间,可恢复性,或设备限制的备份集和副本
  • 特定数据库的化身,或者这个资源库知道的所有数据库
  • 在恢复目录中存储的脚本

 

使用REPORT OBSOLETE 命令,你可以识别那些安全备份保留策略不再需要的文件。默认地,REPORT OBSOLETE命令列出了那些,不在当前配置的保留策略中的过期文件。你可以在 REPORT OBSOLETE中使用不同的 REDUNDANCY 或RECOVERY WINDOW参数来指定不同地保留策略,这样就可以对于不同地保留策略,生成哪些过期文件的报告。

你可以参考Oracle Database Backup and Recovery Reference来获取更详细的语法详细

3.28 管理备份:动态性能视图

在目标数据库中查询下来动态视图,来获取关于备份的信息:

  • V$BACKUP_SET: 创建备份集
  • V$BACKUP_PIECE: 存在备份片
  • V$DATAFILE_COPY:磁盘上的数据拷贝
  • V$BACKUP_FILES:在创建备份时,所有创建的文件信息。

 

这里有很多视图提供了于备份相关的信息。最常用的那些在幻灯片中列出。

如果你使用备份恢复目录,你可以查询在恢复目录的数据库上查询相同的视图,这些视图的信息,和每个注册到恢复目录的目标数据库上的信息一样。这个等价的视图名称是一样的,只是v$换成了RC_。同样的,它们存放在恢复目录拥有者的方案下。例如:这些等价的视图RC_BACKUP_SET, RC_BACKUP_PIECE,RC_DATAFILE_COPY, 和 RC_BACKUP_FILES在恢复目录中,和幻灯片中的视图提供相同的信息。

为了查询RC_BACKUP_FILES视图,你必须在恢复目录数据库上先执行下列语句:

SQL> CALL DBMS_RCVMAN.SETDATABASE(null,null,null,<dbid>);

<dbid> 表示目标数据库的id

 

3.29 使用EM来查看备份的报告

你可以使用备份报告页面来显示那些数据库中的备份任务,这些备份任务的相关信息记录在数据库控制文件中。

在顶端的检索栏中,你可以结果中自定义显示的任务列表。这个结果列表基于每个备份任务,例如开始时间,话费时间,和备份任务的状态。你也可以使用结果列表中,备份名称字段上的链接,下钻到单独备份任务上,去查看其更详细的信息。

你可以在结果列表中点击任务状态,下钻到备份任务的总结工作的页面,你可以看到输出的日志文本。

点击备份名称的链接,你可以使用备份报告页面来显示这个备份的详细信息。这个页面上显示的信息来源于数据库控制文件中记录的信息。

 

这个备份页面在选择不同的类别中可以显示不同的结果信息,例如输入概括,汇总了关于备份的所有文件的信息;输出概括,汇总了备份集合镜像拷贝的信息;输入和输出选项显示了那些任务的详细信息,包括数据文件,控制文件,备份集,备份片和镜像拷贝 。

3.30 管理备份:交叉检查和删除

使用下列RMAN命令来管理你的备份:

  • CROSSCHECK: 对于媒体(磁盘和瓷磁带),验证备在RMAN资源库中,备份集和副本的状态
  • DELETE EXPIRED:移除那些在资源库中状态是无效的文件
  • DELETE OBSOLETE:删除那些不在需要的备份

是用crosscheck 可以确保在恢复目录中或同步的控制文件中备份文件的数据,对应在磁盘或者媒体管理目录中的实际文件是存在的。crosscheck命令只会对那些记录在RMAN资源库中的文件进行操作。

CROSSCHECK 命令 通过DISK通道检查磁盘上的文件或者通过SBT通道查询媒体管理器,来校验那些被标记为AVAILABLE或EXPIRED的对象。CROSSCHECK命令会更新资源库记录,将那些找不到的文件都置为EXPIRED。它并不会删除那些无法找到的文件。

DELETE命令可以从list和crosscheck命令上删除任何文件。例如,你可以删除备份集,归档日志,数据文件副本。DELETE命令同时删除物理文件和在目录中的文件记录。DELETE OBSOLETE 命令删除那些不在使用的备份。它和带REDUNDANCY 和RECOVERY WINDOW选项的REPORT OBSOLETE 用法类似。

如果你没有使用RMAN来删除备份。你可以使用UNCATALOG命令来将这些文件从恢复目录中移除,或者使用CROSSCHECK和DELETE EXPIRED命令。

更详细的语法信息,可以参考Oracle Database Backup and Recovery Reference

 

3.31:总结

在这个课程,你应该学会如何:

  • 创建镜像文件备份
  • 创建一个整库备份
  • 创建一个全库备份
  • 启用快速增量备份
  • 创建多路备份集
  • 备份一个备份集
  • 为长时间保留策略创建一个归档备份
  • 创建一个多级备份
  • 创建一个压缩备份
  • 创建一个加密备份
  • 生成备份报告和备份维护

沪ICP备14014813号-2

沪公网安备 31010802001379号