テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn
1. 無料のOracleデータベース 読者の皆さんはOracleデータベースに無料版が存在することをご存知でしょうか?残念ながら日本オラクルから情報が出てないので、知らない方も多いと思います。 無料版のOracleデータベースとはOracle Database 10g Express Edition(以下「Oracle XE」)で、多少の制限はありますが中身は完全なOracleデータベースです(制限については後述)。 金額的に敷居が高いと感じていた方であっても、無料でOracleデータベースを用意することができます。開発プラットフォームとしてだけでなく、小規模システムであれば運用プラットフォームとしても十分に使えると思います。もちろん、Oracleデータベースの勉強にも有用でしょう。 データベースはデータを管理し、簡単に検索・抽出などをするために利用されます。通常はデータの管理等に利用され
See a quick, introductory tour of the download process
データベースの運用中、アプリケーションやユーザーの操作ミスにより、データの整合性に矛盾が生じてシステムが正常に動作しなくなるようなことがあります。 このような場合、いつ誰がどのような操作を行ったのかを追跡して原因を追求するわけですが、アプリケーションレベルのログなどの情報だけでは原因が特定できないことも多々あります。 しかし、アプリケーションレベルで原因を特定できない場合でも、データベースにデータ変更のログが残っており、それを追跡することができれば確実にどの時点でデータに不整合が発生したのかを特定することが可能です。 Oracleでは全てのデータの変更が REDOログファイルに記録されます。 これは本来障害発生時にデータのリカバリを行うためのものですが、LogMinerという機能を用いることによってこれをデータ分析用途で使用することが可能になります。 サプリメンタル・ロギングの設定 Log
VMwareの3倍の性能で無償、「Oracle VM」は本物か:オラクルが全スタックをサポート可能に 日本オラクルは3月13日、サーバ仮想化製品「Oracle VM」の提供を開始したと発表した。ハードウェア上で直接稼働するハイパーバイザー型の仮想化製品で、オープンソースのXenハイパーバイザーをベースにしている。Webサイトからダウンロードして無料で利用できる。オラクルはLinux OSから仮想化製品、データベース、ミドルウェア、アプリケーションと全スタックで製品を持つことなり、ワンストップのサポートが提供できるようになるとしている。 Oracle VMは業務アプリケーションなどを稼働させるエンタープライズシステム用の仮想化製品。Red Hat Enterprise LinuxとWindows 2000、Windows Server 2003、Windows XP、Red Hatクローンの
拡張バッファ・キャッシュ機能の設定に関するトラブルシューティング 拡張バッファ・キャッシュ機能の設定に問題がある場合、Oracleの起動時に様々なエラーが発生します。 私が出遭ったエラーは以下のとおりです。 ORA-00824: cannot set sga_target due to existing internal settings 拡張バッファ・キャッシュを使用する場合、自動共有メモリー管理機能を同時に使用することができません。 そのため SGA_TARGET初期化パラメータに 0以外の値を設定していると上記のエラーが発生します。 ORA-27102: out of memory Linux Error: 28: No space left on device /dev/shmに割り当てたメモリーサイズには内部オーバーヘッドが発生するらしく、丸々拡張バッファ・キャッシュに割り当てる
x86 Linux 環境での拡張バッファ・キャッシュ機能の設定手順 その1でも説明したとおり、結論から言うと大容量のメモリを利用してイン・メモリ・データベースを構築するのであれば、x86-64環境を構築するのが望ましいわけですが、せっかくですので備忘録として x86 Linux環境で拡張バッファ・キャッシュ機能を利用する際の設定手順をまとめておきます。 1.メモリー内ファイル・システムの設定 rootユーザーで次のコマンドを実行し、/dev/shmマウントポイントを作成します。(8GB割り当てる場合) mount -t tmpfs shmfs -o size=8g /dev/shm ※システムの再起動時にメモリー内ファイル・システムが確実にマウントされるようにするには、/etc/fstabファイルに次のエントリを追加します。 shmfs /dev/shm tmpfs size=8g 0 0
x86 Linux 環境で大容量メモリを活用する PC用のメモリは年々大容量になりかつ安くなっています。 Windows NTベースの C/Sシステムを構築していた頃などはサーバーで数十MB~数百MB、PCに至っては数MB~数十MBでしたが、最近では GB単位です。 これだけ大容量のメモリを安価に搭載できるのであれば、小規模なデータベースであれば、データを丸ごとキャッシュに載せて運用することも可能です。 そのほうが、パフォーマンスチューニングにコストを掛けるよりも効率的かもしれません。 しかし、メモリをドカドカと積んだところで、いまだなお健在の x86系の CPUではアーキテクチャの制約により広大なメモリ空間をフル活用することができません。 x86ではプロセス当たりの最大メモリ空間は 4GBです。そのうち約1GBはカーネルが占有しますので、ユーザーが使用できるのは約3GBとなります。 さら
Oracle では統計情報を適切に収集していれば、データ・ディクショナリ・ビュー XXX_TABLES の情報からテーブルのサイズを計算することができます。 実際のサイズは BLOCKS(使用済ブロック数)+EMPTY_BLOCKS(空きブロック数)から計算できます。 本当に必要なサイズは NUM_ROWS(行数)や AVG_ROW_LEN(1行あたりの平均バイト数)から見積もることができます。 (より正確に見積もるにはブロックサイズや各種オーバーヘッドを考慮する必要がありますが...) 実際のサイズと見積もりサイズを比較すれば、領域使用率を知ることもできます。 これらの情報を利用すれば、例えば、定期的にテーブルの領域使用率を監視し、使用率が一定の閾値を下回る場合にテーブルを再構築してテーブルを縮小するとともに、空き領域を増やすというような運用を行うことができるわけです。 ところが、先日、
主な内容 --Page 1-- ▼バックアップを取るだけでは不完全 ▼バックアップの主な役割 --Page 2-- ▼バックアップ計画の立て方 ▼バックアップ要件 --Page 3-- ▼バックアップ対象を決定する ▼いつバックアップを取得するのかを決定する --Page 4-- ▼バックアップ方法を決定する ▼バックアップの保持期間と取得先媒体を決定する 今回から始まる本連載では、Oracleデータベースのバックアップ/リカバリについて説明します。バックアップ/リカバリの重要性、そして実際の実行方法を理解していただければ幸いです。第1回では、まず概要を理解していただくため、Oracleデータベースに限定せずに、ごく一般的な例を挙げて説明します。 バックアップを取るだけでは不完全 もし、皆さんがいま使っているパソコンのハードディスクが、急に壊れてしまったとしたら、どうしますか? 「仕事が何
repcachedについて repcachedとは、memcachedにデータのレプリケーション機能を追加実装したものです。 memcachedは、以下のようなところによく使われると思います。 一時的なデータの保存場所として キャッシュを保存する場所として RDBMSのデータのキャッシュ 生成したページデータのキャッシュ いずれの場合も消えていいデータなので、万が一memcachedがダウンしても問題はないはずです。 しかし、影響が全くないわけではありません。 例えば、MySQLのデータをmemcachedでキャッシュしている場合、memcachedがダウンしている間は直接MySQLにアクセスがいくことになりDBサーバの負荷が上がります。また、memcachedを再起動してキャッシュが失われた場合は、再びキャッシュが溜まるまではDBサーバに負荷がかかることになってしまいます。 このように
H2 データベース エンジン Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server modes Clustering is supported A web client is included No Javascript If you are not automatically redirected to the main page, then Javascript
Recovery Managerでバックアップを実行しようとすると以下のようにアーカイブログが識別できないというエラーが発生することがあります。 RMAN> RUN { 2> backup incremental level = 0 database format 'C:\Oracle\Backup\%d_DBF_%U_%Y%M%D.BAK' plus archivelog format 'C:\Oracle\Backup\%d_ARC_%U_%Y%M%D.BAK' delete all input; 3> backup current controlfile format 'C:\Oracle\Backup\%d_CTL_%U_%Y%M%D.BAK'; 4> } 5> backupが開始されました(開始場所: 04-10-19) 現在のログがアーカイブされました。 リカバリ・カタログのか
2007年05月22日16:15 カテゴリiTech DBという中間搾取 これは事実の半分に過ぎない。 naoyaのはてなダイアリー - Linux のページキャッシュ ということでデータサイズを見てページキャッシュに任せられそうなサイズなら OS に任せておくのが良いんじゃないかなと思います。まず、Disk Cacheはreadには強くても、writeにはそれほど強くないということ。以下をご覧いただきたい。これは、/usr/shre/dict/wordsをBerkeley DBに変換するというトリビアルな例で(ソースは後ろ)、./が普通のdisk,/mdがmemory disk(md)。読み込みに関しては差が全く出ていないのに、書き込みに関しては有意に遅い。 # write /usr/share/dict/words => ./words.db: 10.1032350063324 sec
本家/.の記事より。IBMは、Oracleが打ち出したUnbreakable Linux(Open Tech Pressの記事)上でIBMのソフトウェアが動作することを保証せず、動かなかった場合はあくまでOracleが自分で問題解決する必要があると述べた(Tech.Blorge.comの記事)。 Red Hat Enterprise Linux (RHEL)上での自社製品の動作は保証しているIBMが、事実上RHELのクローンであるUnbreakable Linux上での動作は保証しないと述べたことに注目が集まっている。IBMは「顧客の要望が多ければ今後サポートするかもしれない」としているが、そもそもRHELからUnbreakable Linuxへの乗り換えを促すのに、IBMの保証が不可欠と言われているからだ。 Oracleが昨年Unbreakable Linux路線を打ち出して以来、RHと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く