Oracleのバックアップについてお教えください。

現在サーバとバックアップサーバを用意して、VBのアプリケーションがサーバのDBを更新したら、リアルタイムでバックアップサーバのDBを更新するという仕組みを作ろうと考えています。
もちろん、サーバとバックアップサーバには両方同じ環境を用意しようと思います。

環境は、サーバ、バックアップサーバとも、
Windows2000Server(sp2)
Oracle8.1.7
です。

伺いたいのは以下の4点です。
1.リアルタイムにバックアップサーバのDBを更新することは可能でしょうか?
2.もしできるとするならば、それはOracleの設定でしょうか?それともサーバ(Windows2000)の設定でしょうか?
3.もしOracleの設定でしたら、それは標準のOracleWorkGroupServerで実現できるのでしょうか?
4.バックアップツールにARCserve2000を使用する予定です(Backup Agent for Oracle Japaneseは使用しない予定です)。もしかしてARCserveで実現できますか?

すみません。サーバの管理は初めてなので。
Oracleのマニュアルのどこを見たらいいかも分からない状況です。

環境等補足するところがございましたらその旨をお書きください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

No.1の返答についてのコメントです。



>どうもEnterpriseEditionは高価なので、WorkGrouopEditionでアプリケー
>ション(VB)による対応を考えています。

WorkGroupを使用する場合、Oracleのトリガーでバックアップテーブルへの
書き込みを実行するやり方の方がメジャーのように思います。
その場合、OracleのPL/SQLでバックアップテーブルへの更新プログラムを記述
します。

最もプログラムを書くのは私ではなくMagoichiさんですので、PL/SQLを
採用するかどうかは、そちらで判断する事柄ですが...。


>VBからサーバにDBを更新する際、同時に、バックアップサーバへ更新すると
>いう仕組みをVB内に作ってしまえば大丈夫のような気がするのですが。
>これだと厳密な意味でのレプリケーションとはなりませんが、常に同じ状態が
>保たれると思います。

ロジック的にはそれでOKですが、VBプログラムの更新時の負荷が倍になりますよ。
Oracleのトリガーで処理をすれば、トリガーはOracleサーバ上で実行されるの
で、VBプログラムの負荷はバックアップを取らない時と変わりません。
それでトリガーを推奨した次第です。
    • good
    • 0
この回答へのお礼

cse_ridさん、重ねてのご回答本当にありがとうございます。

なるほど・・・。トリガーを使用してですね?ん?トリガーって別のサーバーの表に対して更新かけられたんでしたっけ?すみません。無知なもので・・・。

しかし、トリガーでできるならこれに越したことは無いですね。ご回答どうもありがとうございます!

お礼日時:2001/09/05 18:39

レプリケーションするときはレスポンスの低下とN/Wのトラフィック量増加に注意してください。


「Agent for Oracle」はOracleが稼動中でも整合性を保ってSaveしてくれますがリストアしないとアクセスできません。
    • good
    • 0
この回答へのお礼

xruzさん、ご回答どうもありがとうございます。

そうですね。只でさえDBの列数が多く、大量のトラフィックが流れるので、アプリケーション全体のレスポンスをチューニングする必要に迫られそうです。Oracleと、VB両方考えています。

ARCserveの方はとりあえず当初の予定通り、Agent for Oracleを購入しない予定で進みます。

またチューニング等で伺うこともあるかもしれませんが、その際もよろしくお願いいたします。

未だ質問は締め切らないで起きますので、何かお気づきの点がございましたらお知らせください。

お礼日時:2001/09/05 14:56

Oracleでリアルタイムのバックアップサーバへのバックアップを実行したい場合、


レプリケーションの機能を使用します。

レプリケーションを用いる場合ですが、
 1.リアルタイム更新のバックアップは可。
 2.Oracleの設定
 3.WorkGroup不可。Enterpriseで対応。
 4.ARCserveは不要です。別の用途で使用してください。

という回答になります。

Oracleのレプリケーションの詳細については、「概要 Vol.2」マニュアルを
先ず読んでみてください。

この回答への補足

どうもEnterpriseEditionは高価なので、WorkGrouopEditionでアプリケーション(VB)による対応を考えています。

VBからサーバにDBを更新する際、同時に、バックアップサーバへ更新するという仕組みをVB内に作ってしまえば大丈夫のような気がするのですが。
これだと厳密な意味でのレプリケーションとはなりませんが、常に同じ状態が保たれると思います。

具体的には、サーバ上のDBをCommitTransする際、バックアップサーバ上のDBをCommitTransする方法です。それぞれ別OraSessionを使用すればできそうです。

もちろん、DBサーバ、バックアップサーバ共にライセンスは購入する予定です。
技術的に、若しくはライセンス的に問題があるようでしたらご回答を頂きたいです。

よろしくお願いいたします。

補足日時:2001/09/05 16:01
    • good
    • 0
この回答へのお礼

cse_riさん、早速のご回答どうもありがとうございます。

非常に分かりやすかったです。
ただ今EnterpriseEditonがいくら位を調べています。

Webで価格を探そうとしてもなかなか見つからないものですね。

早速マニュアルの概要Vol.2を見てみます。
・・・手元のPDFには「J00928_9_8i概要.pdf」しかなかったのですが、こちらにレプリケーションのことが書いてあったので基礎知識を仕入れておきます。

ありがとうございました。

もうちょっと伺いたいこととか、他の方法を試す可能性もございますので、未だ質問は締め切らないでおきます。何かお気づきの点がございましたらよろしくお願いいたします。

お礼日時:2001/09/05 14:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

Q運用中のALTER TABLE

運用中でアクセスがあるテーブルに
ALTER TABLEで項目を追加したいのですが
問題ありますでしょうか?
オラクル9iです。

宜しくお願い致します。

Aベストアンサー

(1)ALTER TABLE文は表ロックがかかります(自身なし(^^;)。
SELECT ~ FOR UPDATE NOWAITで実行するSQL文等があるとリソースビジー
(ORA-00054)が戻る場合があります。

(2)テーブルを変更することによっていろいろ(プロシージャなどが)
無効(INVALID)になる場合がありますので、オブジェクトの状態を確認
したほうが良いと思います。

(3) DEFAULT指定がALTER TABLE文にある場合、undo領域が圧迫
(領域不足)したり、ALTER TABLEがなかなか完了しなかったりします。
(私はコレでハマリました(^^;)

今のところ、思いつくのはコレだけですが、いずれにしろテストできる
環境で確認されたほうが良いと思います。

QOracle8i(8.1.7)forLinuxのDB サーバにリスナーを強制切断するには

恐れ入ります、oracleのDBサーバにクライアントがWindowsでMSアクセスを使用
しているユーザがODBC経由で接続しています。
このリスナーをoracleのDBサーバ側で強制切断するoracleのコマンドと
いったものはないのでしょうか?
よろしくお願い致します。

Aベストアンサー

ACCESSユーザーのプロセスをKILLするにはまず、接続ユーザーの
確認が必要ですが、V$SESSIONにて接続しているユーザー情報が取得可能
です。ACCESSのプロセスは、...MSACCESS.EXEと出てくると思うの
で該当の SID名, SERIAL# を控えておきます。

接続ユーザーの情報はsystemユーザーにてsql*plusまたはSVRMGRを使って
select * from v$session;
を実行することにより取得が可能です。

次に該当プロセスの強制切断ですが同じくsystemユーザーにてsql*plus
またはSVRMGRを使って
alter system kill session 'SID名,SERIAL#';

(実行例)
> alter system kill session '17,143';

システムが変更されました。

なお、この方法でKILLするのは対象のACCESSプロセスを特定
できないと他の関係ないものを強制終了してしまうので非常に危険でも
あります。十分注意して使用したほうがいいかと思います。

また、うろおぼえですがACCESSのオプション設定の中にODBC
タイムアウト設定があったような気がします。
確か600秒だったような...

ACCESSユーザーのプロセスをKILLするにはまず、接続ユーザーの
確認が必要ですが、V$SESSIONにて接続しているユーザー情報が取得可能
です。ACCESSのプロセスは、...MSACCESS.EXEと出てくると思うの
で該当の SID名, SERIAL# を控えておきます。

接続ユーザーの情報はsystemユーザーにてsql*plusまたはSVRMGRを使って
select * from v$session;
を実行することにより取得が可能です。

次に該当プロセスの強制切断ですが同じくsystemユーザーにてsql*plus
またはSVRMGRを使って
alter s...続きを読む

QOracleのCreate Table 文のStorage句

お世話になります。

OracleのCreate Table 文のStorage句のNextの値を
変更したいのですが、できるのでしょうか?

Alter Table文で変更するのでしょうか?
手元にマニュアルが無く困っております。

よろしくお願いします。

Aベストアンサー

alter table テーブル名 storage ( next 変更後のサイズ );

だっけかな?

QDB2 9とOracle10g なぜDB2はマイナーなの?

DB2がマイナーとは言い過ぎだとは思いますが、Oracleと
DB2を比較したとき、機能はほぼ互角、対象としている
プラットホームもほぼ同じだと思います。

しかし名前が薄いのかOracleの影に隠れてしまっている
ような感じがします。ちなみにうちの会社はOracleと
MS SQLを使っていますが、なぜかDB2は使っていません。

なぜ機能がいいのにDB2は影がうすいんでしょう?

Aベストアンサー

>プラットホームもほぼ同じだと思います。

DB2は、PC~メインフレームまでを対象。
オラクルは、PC~サーバクラスを対象。
MSSQLは、Windowsサーバを対象。

DB2がサポートするプラットフォームは非常に広いです。
ただし、プラットフォームごとにクセがあり、同一製品と考えるのには、ちょっと無理があります。

Windowsサーバやunixサーバクラスだと、オラクルが圧倒的シェアを持っており、技術者の数もノウハウも
シェアに比例して多いわけで、これを覆すだけのセールスポイントがDB2には、見つからないから・・としか言えません。

例えば、IBMメインフレームユーザが、ダウンサイジングをするようなケースだと、サーバ上のDB2を
使うケースは多いように思います。

Qmysqlのalter table中のロックについてです。

mysqlのalter table中のロックについてです。


下記のように、alterでテーブルを再構築中に同じテーブルにinsertが実行された場合、
接続Bのinsertはブロックされるかと思うのですが、テーブルが大きくalterに時間がかかる場合、
タイムアウトなどは発生するのでしょうか。
またもし発生する場合、タイムアウト値の設定などの確認方法はあるのでしょうか。

1.接続A
 alter table table1 add columnB int(11) ;

2.接続B(接続Aのalter実行中)
 insert into table1(columnA) values('aaa');

Aベストアンサー

ロック待ち関連のパラメータは、
innodb_lock_wait_timeout
table_lock_wait_timeout
だと思うんですが、DDLでロックされているテーブルのロック待ちに関しては、上記パラメータが関係ないようでした。
私の設定値は、デフォルトの50(両方とも)

※確認方法
show variables like '%timeout%';


2パターン、やってみました。

セッション1
alter table table1 add primary key(c1); /* 20分間 */

セッション2
start transaction;
insert into a values (100000001); /* セッション1終了後、ロック解除 */
rollback;

セッション1
alter table table1 drop primary key; /* 10分経過 */

セッション2
lock tables table1 write; /* おそらく、セッション1終了後ロック解除するのでしょう */

QORACLE DB を軽く動かしたい

現在、Oracleの勉強のために、余ってるPCにインストールして
やってみようと思って、やり始めました。

ですが、あまりにも重たく、勉強どころではありません。
普通にフォルダ開くのも1分ぐらいかかります。
スペック不足は認識してますが、少しでも軽くなればと思ってます。

Oracleのサイトから10g Database の30日間お試しのものを使っています。

PCのスペックは、
 CPU:CeleronM 1.2GHz
 メモリ:512M
 HD空き容量:入れる前4.8G → 現在1.3G

とりあえず、メモリ不足で、ページファイル使用料が大体800MBぐらい
Oracleを入れる前は、200MBぐらいでした。

インストールの際は、オラクルマスターのBronze DBA の翔泳社のテキストを
参考にしながらやりました。

また、一度入れたあとにOUIを使って削除し、再度インストールをしましたが、
2回目にインストールする際、確かインストール先の名前の規定値が
「Home2」のように最後が2になってたので、アンインストールが適切で
なく、
現在、2つ分動いているのでは?というふうにも思っています。
そう思う理由としては、タスクマネージャでプロセスを見たとき、
oracle.exe, java.exe, emagent.exe等がすべて2つづつ出ています。

もしくは、インストール時にサンプルスキーマ付きデータベースを入れた後、
DBCAを使ってもデータベースを作成したのが余計だったのでしょうか?

重いながらもなんとか動くので、なにか設定によって少しでも軽くなるなら
そうしたいのですが、何か、アドバイスいただければと思います。

現在、Oracleの勉強のために、余ってるPCにインストールして
やってみようと思って、やり始めました。

ですが、あまりにも重たく、勉強どころではありません。
普通にフォルダ開くのも1分ぐらいかかります。
スペック不足は認識してますが、少しでも軽くなればと思ってます。

Oracleのサイトから10g Database の30日間お試しのものを使っています。

PCのスペックは、
 CPU:CeleronM 1.2GHz
 メモリ:512M
 HD空き容量:入れる前4.8G → 現在1.3G

とりあえず、メモリ不足で、ページファイ...続きを読む

Aベストアンサー

ORACLEのパフォーマンスは悪くなりますが、
SGA_MAX_SIZE, PGA_AGGREGATE_TARGETを小さくしてみては。

後、10gのEnterprise Editionをアンインストールして10gXEをインストール
してみるのも一つの手かと。
http://rina.jpn.ph/~rance/oracle10g/uninstall_win.html

Qalter table で text が midiumtext になってしまう

当初作ったテーブル(テーブル名=test)では
col1 char(10) unique not null,
col2 text not null,
col3 text not null,
col4 text not null
だったのですが、col1だけをchar→varcharに変えたくて
alter table test modify col1 varchar(10) unique not null
としたところ、他のtext型項目が全てmidiumtextになってしまいました。

ひとつずつtextに直そうと
alter table test modify col2 text not null
を実行し次に
alter table test modify col3 text not null
とするとcol3はtextになるがcol2がまたmidiumtextになってしまいます。

midiumtextほどの容量は必要ないのでcol2~col4をtextに戻したいのですが、
どのようにすればよいのでしょうか。
ご教示願います。

宜しくお願い致します。

当初作ったテーブル(テーブル名=test)では
col1 char(10) unique not null,
col2 text not null,
col3 text not null,
col4 text not null
だったのですが、col1だけをchar→varcharに変えたくて
alter table test modify col1 varchar(10) unique not null
としたところ、他のtext型項目が全てmidiumtextになってしまいました。

ひとつずつtextに直そうと
alter table test modify col2 text not null
を実行し次に
alter table test modify col3 text not null
とするとcol3はtextになるがcol2...続きを読む

Aベストアンサー

UNIQUEは引き継がれるはずなので、changeをつかって
以下のようにしてみてはいかがでしょうか?

ALTER TABLE `test`
CHANGE `col1` `col1` VARCHAR(10) NOT NULL
,CHANGE `col2` `col2` TEXT NOT NULL
,CHANGE `col3` `col3` TEXT NOT NULL
,CHANGE `col4` `col4` TEXT NOT NULL

ただしMySQLのバージョンにもよるでしょうけど、
暗黙のフィールド定義変更がはたらいて手動による
型変更は意味がないかもしれません

参考URL:http://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_Reference.html#Silent_column_changes

QOracle とDB2の比較

このほど、データベースを使用したシステムの契約を検討しています。この中で
オラクル社の Oracleと IBM社のDB2が競合してでてきました。それぞれ結
構シェアが高いデータベースだとは思うのですが、各々、比較しての特徴が全く
わかりません。このことについて説明しているHPも見つかりませんでした。
ついては、各々の比較しての特徴があればよろしくご教示下さい。

システムの使いやすさはアプリケーションの問題であってデータベースの問題で
はないとの正論もあるかとは思いますが、それぞれの違いを説明できることが必
要となっていますのでよろしくお願いします。
なお、システムはwin2000サーバで動かす予定です。

Aベストアンサー

はっきり言って比較出来ません。
と言うのも一般的な機能については、ほとんどどちらも差が無い為です。
WEB上に比較ページもちょこちょことありますが、はっきり言って最初からどちらかを勧めるイメージで書いてある物しか無いのではないでしょうか?(IBM系の人かOracle系の人が書いていると思われる。。。)
どうしても比較が必要なのであれば、現在検討中の両ソフトのバージョン・サーバーマシンのスペック・対象システム規模・DB規模・利用形態等が分かればある程度お勧めが出来るような気もしますが・・・。(それ程、機能的に差が無いんです。)
これらがはっきりしないのであれば、価格と運用(自社保守であればスキルのある方のDBを選ぶ等)だけで比較すれば良いと思います。
ちなみにWindows系であればシェアは圧倒的にOracleの方が多いはずです(古いバージョン含む)。そのため、DB2で開発した場合は該当システムに関しては、ベンダーの乗り換えは難しい事が予想されます(DB2での開発者やチューニング技術者はそれ程多くないと考えられます)。
この辺も比較に入るかな・・・?

はっきり言って比較出来ません。
と言うのも一般的な機能については、ほとんどどちらも差が無い為です。
WEB上に比較ページもちょこちょことありますが、はっきり言って最初からどちらかを勧めるイメージで書いてある物しか無いのではないでしょうか?(IBM系の人かOracle系の人が書いていると思われる。。。)
どうしても比較が必要なのであれば、現在検討中の両ソフトのバージョン・サーバーマシンのスペック・対象システム規模・DB規模・利用形態等が分かればある程度お勧めが出来るような気もしますが・・・...続きを読む

QALTER TABLE mytable CHANGE

mytableというテーブルのaカラムの型と名前を変更するのは
ALTER TABLE mytable CHANGE a new_a INT;
でできましたが、今度はnew_aをbにすると動時にTINYINT(4)にしたいのですが、SQLの文法が違うようだったので正しいものを教えてください。
ALTER TABLE mytable CHANGE new_a b TINYINT(4);
でなく、何なのですか?

Aベストアンサー

それで合っています。
(少なくともウチの4.0.23ではそれで変更できてます)

本当に文法ミスでのエラーでしょうか?
エラーの内容を確認してみてください。

QOracleでのDBインスタンス作成方法を教えて下さい

現在、VC++とOracle(8.1.7)を使っての業務アプリケーション開発に携わっています。
が、VC++もOracleも開発時に必要に応じて知識をつけて来たため、基本的な理解が乏しく、一度自分だけでアプリケーションを作ってみようと考えています。

そこでまずDBインスタンスを作ろうと思い、Oracle8.1.7をフルインストールしたのですが、どのツールを使ってインスタンスを生成すれば良いのかもわかりません。

この辺りの事がわかる方、教えて下さい。
また、この辺りの技術をわかりやすく説明しているHPや書籍などありましたら紹介して下さると助かります。

よろしくお願いしますm(_ _)m

なお使用OSはWin2000です。

Aベストアンサー

こんにちわ。

> どのツールを使ってインスタンスを生成すれば良いのかもわかりません。
インストール時に、初期データベースは作成しなかったんですか?
インストール後でも、「Database Configuration Assistant」を使えばGCI から
インスタンス/Database を作成してくれます。
oradim コマンドを使用すれば、手動でもインスタンスの管理できますが、
慣れていないのであればGUI からやられた方が簡単だと思います。

データベースの作成方法については、
「Oracle8i for WindowsNT 管理者ガイド」の第6章に説明
されています。
上記マニュアルは、ユーザ登録が必要 (無料) ですが、
OTN Japan にPDF 形式で公開されていますので、
こちらからDownload されてみてはいかがでしょうか?

参考URL:http://technet.oracle.co.jp/


人気Q&Aランキング

おすすめ情報