• 締切済み

rawデバイスの表領域を他のrawデバイスに移動させたい

rawデバイスに表領域を作成しているのですが、負荷分散のため、他のrawデバイスに移したいと考えています。 rawデバイスでない場合はalter tablespaceでできそうなのですが、rawデバイスだとこの方法は使えなさそうです。 新しくcreate tablespaceする以外に何か方法はないでしょうか? Oracleのバージョンは9.2.0.4です。 よろしくお願いします。

  • Oracle
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

raw deviceにしろ、ファイルシステムにしろ、いったん作成した表領域に対するデータファイル(raw device)を移動することは1コマンドではできないと思います。 renameでできるのはDBFファイル名のみでディレクトリの移動まではできなかったような... 方法としてはやはり移動したい先に論理ボリュームを 確保してそこにraw deviceで空の表領域を作成し、 select segment_name from dba_segments where tablespace_name = '移動したい元の表領域名'; で表示される表なり索引なりを全て移動させる必要が あります。 確か表の移動は alter table {table_name} move tablespace to {new_tablespace_name}; 索引の移動は alter index {index_name} rebuild tablespace {new_tablespace_name}; といったような感じだったと思います。 (自信は無いので詳しくはマニュアルを見てください) 他の方法としてEXP/IMPを用いてオブジェクトを 移動するといった方法もあります。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちは。 > 新しくcreate tablespaceする以外 Alter database rename file ・・・ ではどうでしょう?

関連するQ&A

  • UNDO表領域

    お世話になります。 Oracle9i 以降のUNDO表領域に関してお聞きしたいのですが。 Create tablespace 文でUndo表領域を作成できますが、 複数作成するメリットなどはどのようなことが考えられるのでしょうか? インストール時に存在する、UNDO表領域のサイズを大きくすれば いいような気がするのですが。 以上 よろしくお願いします。

  • 表領域の作成について

    表領域を作成してインポートしたら下記のエラーが出力されて困っています。 表領域の作成の仕方が駄目でエラーが出力されてしまったのでしょうか。 下記のCREATE TABLESPACE文で表領域を作成しています。 ---------------------------------------------------------------------- CREATE TABLESPACE "T_DAT" BLOCKSIZE 8192 DATAFILE 'D:\oracle\oradata\ora92\DAT_01.DBF' SIZE 32767M, 'D:\oracle\oradata\ora92\DAT_02.DBF' SIZE 32767M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO; ---------------------------------------------------------------------- コマンドプロンプトでimpコマンドを実行したら、下記のエラーなどが出力されました。 ---------------------------------------------------------------------- IMP-00003: Oracleエラー1659が発生しました。 ORA-01659: nを超えるMINEXTENTSを表領域T_DATに割当てできません。 IMP-00003: Oracleエラー1658が発生しました。 ORA-01658: 表領域T_DATにセグメント用のINITIALエクステントを作成できません。 ---------------------------------------------------------------------- 何がいけないのかが正直わかりません。 申し訳ありませんがアドバイスいただけませんでしょうか。 宜しくお願いします。

  • 一時表領域について

    システム運用開始前の性能試験で、自動拡張に設定していない一時表領域の容量を超えるOracleのエラー(ORA-1652だったような)が出たため、SQLの修正を行っている最中です。 パフォーマンスチューニングやデータベース容量の設定などには詳しくないため、一時表領域を自動拡張に設定すべきかこのまま自動拡張にしないままにしておくべきかどうかの判断はつかないので、とりあえずそのままにして、一時表領域が容量を超えないようなSQLに修正しようとしています。 ただ、一時表領域のため、容量の見積が出来ず、実際にシステムを動かして確認するしかありません。 自社の環境でもOracleのエラーを再現させることが出来たのですが、一時表領域のサイズが小さくなりません。 これは、エラーのせいなのでしょうか? また、一時表領域を小さく(0バイト)にしたり、いったん削除して再作成したりは出来ないのでしょうか? ALTER TABLESPACE、DROP TABLESPACE 共に実行できませんでした。 ちなみに、この一時表領域は、TEMPORARYタイプでユーザのデフォルトの一時表領域になっています。

  • UNDO表領域の拡張について

    Oracle9iにてUNDO表領域を自動拡張ではないため手動にて拡張(512M→1024M)しようとしております。 UNDO表領域:/oradata/undotbs01.dbf 表領域をオフライン(alter tablespace '/oradata/undotbs01.dbf' offline;)にすることなく以下のSQL文のみで拡張することは可能でしょうか? SQL> alter database datafile '/oradata/undotbs01.dbf' resize 1024M; ご教授の程、宜しくお願い致します。

  • 表領域の拡張について

    表領域の拡張について教えてください。 以前、以下のようなSQL文で表領域(WEB_DATA)を作成しました。 -------- CREATE TABLESPACE WEB_DATA DATAFILE '/home1/oracle/app/oracle/oradata/orcl/WEB_DATA.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE 1000M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; -------- 最近データ容量も増えており以下のように約800Mほどとなっております。 -------- -rw-r----- 1 oracle oinstall 806363136 11月 6日 08:18 WEB_DATA.dbf -------- よって表領域の拡張を考えております。 そこで、考えられる方法として以下の2つがあると思われますが、どちらを選択するほうが良いのでしょうか? (1)alter tablespace文の add datafile句 (2)alter database文の resize句 両者のメリット・デメリットがイマイチよく分かりません。 (パフォーマンス的にどちらが良いなどもあるのでしょうか?) また表領域のmazsizeの上限値は通常どれほどにしておくべきなのでしょうか? 環境は以下の通りです。 OS:Solaris8 DB:Oracle9i 以上、宜しくお願い致します。

  • SQLSERVERでも表領域は作れますか?

    ORACLEでいうCREATE TABLE SPACE のようなものはないでしょうか? 1.CREATE TABLE SPACEを知りたいです 2.CREATE TABLE文で、デタレコードにはどの表領域を使って、インデックスにはどの表領域を使うか?を指定する構文を知りたいです。

  • 「ORA-12913: ディクショナリ管理表領域を作成できません」について

    AというサーバーのオラクルデータをダンプしてBというサーバーにデータ移行を 行っていますがうまくできません。 約1週間、調べて実行して失敗を繰り返しています。 ちゃんとオラクルを触るのは今回が初めてです。 以下の表領域のCREATE文はimpコマンドに「SHOW」オプションを「Y」にして実行した際に 出力されたものから抜き出しました。 CREATE TABLESPACE "DATA_A" BLOCKSIZE 8192 DATAFILE 'D:\oracle\oradata\...\DATA01.DBF' SIZE 5541M REUSE AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M, 'D:\oracle\oradata\...\DATA02.DBF' SIZE 6191M REUSE AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M EXTENT MANAGEMENT DICTIONARY DEFAULT NOCOMPRESS STORAGE ( INITIAL 524288 NEXT 524288 MINEXTENTS 8 MAXEXTENTS 2147483645 PCTINCREASE 50 ) ONLINE PERMANENT NOLOGGING; 上記のCREATE文を実行したら下記のエラーが発生して作成できませんでした。 「ORA-12913: ディクショナリ管理表領域を作成できません」 オラクルのバージョンは「9.2.0.1.0」です。 9.2から表領域を作成するSQLが変わったという記事を読みました。 どのように変わったのかがいまいちわかりません。 申し訳ありませんがご教授いただけませんでしょうか。 宜しくお願いします。

  • SYSTEM表領域にインポートされてしまう

    TASC_DATA表領域にインポートしたいのだが、 CREATE USER で 間違ってますか? CREATE USER TASC_USER IDENTIFIED BY TASC_USER DEFAULT TABLESPACE TASC_DATA TEMPORARY TABLESPACE TASC_TEMP PROFILE DEFAULT / GRANT CONNECT TO TASC_USER / GRANT RESOURCE TO TASC_USER / GRANT CREATE ROLE TO TASC_USER / GRANT EXECUTE ANY PROCEDURE TO TASC_USER / GRANT UNLIMITED TABLESPACE TO TASC_USER /

  • 新規表領域の作成について

    はじめて質問します。 現在Oracle9iで開発を行っているのですが下記のようなことができるかどうかをお教え下さい。 Oracle9i ServerがインストールされているPCとは別のPC上の共有フォルダ内に新規の表領域を作成したい。 具体的にはOracle ServerがインストールされているPCがSV1、 新規表領域を作成したい別のPCがCL2、CL2の共有フォルダがORA_DATA としてSV1とCL2はLANで繋がっておりSV1からCL2の共有フォルダは閲覧できる状態です。 この状態で CREATE TABLESPACE USERS2 DATAFILE '\\CL2\ORA_DATA\USERS02.DBF' SIZE 10M LOGGING ONLINE と実行すると ORA-01119: データベース・ファイル'\\CL2\ORA_DATA\USERS02.DBF'の作成中にエラーが発生しました。 ORA-27040: skgfrcre: 作成エラーが発生しました。ファイルを作成できません。 OSD-04002: ファイルをオープンできません とエラー表示され作成に失敗してしまいます。 ディスクの容量は50G以上空いており容量不足とは考えにくいです。 やはり'\\CL2\ORA_DATA\USERS02.DBF'といった書き方がマズイのでしょうか? それともOracleでは根本的にこういったことは許可されていないのでしょうか? もう何日も行き詰まっている状態ですのでどうかご助力下さい。

  • ORACLEのテーブルスペースについて

    OS:AIX Ver.4.3 DB:ORACLE(Ver.8.1.6) でSQL*Loaderを実行していたのですが、 "エラーコード -2 STDERR 書込不可"? ↑ (ログを消してしまってはっきりは覚えてないのですが) というエラーログが出力され、その後、ロードする テーブルのTABLESPACEについて "ORA-01536: 表領域 TABLESPACEXXXに対して割り当てられた領域を使い果たしました。" というORACLEのエラーが発生し始めました。 その後、CREATEは上記ORACLEエラーにより実行不可、 その後のINSERTは途中までできていたのですが、途中から 同様のORALCEエラーにより実行不可、 という状態になっています。 (直前まで通常にデータの更新は行えていました) ちなみに該当するTABLESPACEに割り付けられたデータ ファイルにはまだ十分領域が空いています。 該当するTABLESPACEのデータファイルに対する割付領域を "ALTER TABLE ~" で拡大できたと思うのですが、 方法がはっきり分かりません。 どなたかご存知の方、また、このエラー自体の原因が 分かる方、いらっしゃったらお願いします。