mysql:15969
From: "Atsushi.Shizawa" <"Atsushi.Shizawa" <atsushi.shizawa@xxxxxxxxxx>>
Date: Tue, 11 Jun 2013 18:21:56 +0900
Subject: [mysql 15969] Re: テーブルのレストアが出来なくて困っています
初穂太郎さん お返事遅くなり、申訳有りませんでした。 以下の様な状況(dumpファイルのみ)であれば、 LOAD DATA INFILE〜では戻らないと思います。 →dumpファイルは結局テキストなので、 そこから生成しようと思えば出来るとは思いますが。 自分がイメージしたケースは、 ホットスタンバイ的な別インスタンスが有れば、 そちらからの方が速いはず。 と言う、データ回復優先で回答させて頂きました。 ともあれ、 無事に復旧された様子で何よりです。 (2013/06/06 19:47), ram wrote: > 志澤さん 早々のコメント有難うございます。 > > 私の理解が足りないのかもしれませんが、 > 過去の状態のデータはmysqldumpで出力されたテキストファイルしかないので、 > これを、別名のテーブルで作成し、現行のテーブルとマッチングしながら元に > 戻そうと考えています。 > > mysqldumpの結果のSQLのインポート、もしくは、 > 現在のデータのエクスポート〜インポート(LOAD DATA)では戻らないと思うので > すが、 > そういう意味ではないのでしょうか? > > 幸い2バイト文字を含まない列ばかりのテーブルでしたので、 > 教えて頂いた--forceオプションでなんとか復元はできました。 > 有難うございます。 > > 初穂太郎 > > > (2013/06/06 17:48), Atsushi.Shizawa wrote: >> 始めまして。 >> 志澤と申します。 >> >> 肝心なエラー要因は今一つ理解できてませんが、 >> 現状、バックアップはファイルのみでしょうか。 >> お急ぎとの事ですので、DBサーバーが起動しているのであれば、 >> INTO OUTFILEでエクスポートして、それをLOAD DATAの方が手っ取り早いと見込 >> まれます。 >> →件数にもよりますが、「--force]オプションが無い様子なので。 >> >> 又、 >> mysqldumpのデフォルトはUTF8ですが、運用環境はCP932との事。 >> であれば、mysqldump & インポートバッチのオプションには、 >> default_character_set=binary >> を追加しておく事をお勧め致します。 >> 文字化けの要因ともなりますので。 >> >> 以上、中途半端なお答えにて恐縮です。 >> >> (2013/06/06 17:08), ram wrote: >>> MYSQLのデータベース初心者兼管理者です。 >>> 誤ってデータを消してしまい、バックアップでデータを戻そうとしているのですが、 >>> mysqldumpで吐き出したSQLを実行するとエラーが出てきて困っております。 >>> 基幹システムではないのですが、ちょっと復旧を焦っております。 >>> >>> ◆実行環境 >>> MYSQL5.1.41 Windows2003/R3 >>> >>> Server charcterset = cp932 >>> Client charcterset = cp932 >>> >>> ◆現象 >>> mysqldump --opt --add-drop-table --add-locks --user=root --password=*** dbname > W:\backupsql.txt >>> をバッチで実行して出力されるのが以下のファイルです。 >>> >>> -- MySQL dump 10.13 Distrib 5.1.41, for Win32 (ia32) >>> -- >>> -- Host: localhost Database: dbname >>> -- ------------------------------------------------------ >>> -- Server version 5.1.41-community >>> >>> /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; >>> /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; >>> /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; >>> /*!40101 SET NAMES utf8 */; >>> /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; >>> /*!40103 SET TIME_ZONE='+00:00' */; >>> /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; >>> /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; >>> /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; >>> /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; >>> -- >>> -- Table structure for table `ckbtbl` >>> -- >>> >>> DROP TABLE IF EXISTS `ckbtbl`; >>> /*!40101 SET @saved_cs_client = @@character_set_client */; >>> /*!40101 SET character_set_client = utf8 */; >>> CREATE TABLE `ckbtbl` ( >>> `CKBKBID` varchar(10) NOT NULL DEFAULT '', >>> 中略 >>> `CKBGNCN` decimal(7,2) DEFAULT NULL, >>> `UPDATE_IDENT` decimal(7,0) DEFAULT NULL, >>> PRIMARY KEY (`CKBKBID`,`CKBKBCN`) >>> ) ENGINE=InnoDB DEFAULT CHARSET=cp932; >>> /*!40101 SET character_set_client = @saved_cs_client */; >>> >>> これを >>> mysql --default-character-set=cp932 dbname -u user -p*** < W:\backupsql.txt >>> と実行します。 >>> (/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; >>> などのコメント部分は全て削っています。) >>> >>> ところが、 >>> ERROR 1231 (42000) at line 36: >>> Variable 'character_set_client' can't be set to the value of 'NULL' >>> というエラーが出てきます。line 36というのは下記の行です。 >>> /*!40101 SET character_set_client = @saved_cs_client */; >>> >>> SET character_set_client = @saved_cs_client >>> という行をコメントアウトしますが、結果は同じです。 >>> >>> 何が間違っているのでしょうか? >>> アドバイス頂ければ有難いです。 >>> >>> 初穂太郎 >>> >>> >>> >>> >> > > >
15966 2013-06-06 17:08 [ram <ram@xxxxxxxxxx>] テーブルのレストアが出来なくて困っています 15967 2013-06-06 17:48 ┗["Atsushi.Shizawa" <a] 15968 2013-06-06 19:47 ┗[ram <ram@xxxxxxxxxx>] -> 15969 2013-06-11 18:21 ┗["Atsushi.Shizawa" <a] 15970 2013-06-14 11:51 ┗[ram <ram@xxxxxxxxxx>] 15974 2013-06-14 15:11 ┗["Atsushi.Shizawa" <a]