ブログ
技術的なことや思ったことなど。
2013年8月20日火曜日
2013年8月19日月曜日
プロセスをkillする
select username , sid , serial# from v$session;
で特定し、
alter system kill session '<上記sid>,<上記serial#>';
でシグナル送信。
changePerm.sh
UNIX系OS上でOracleをインストールした場合、基本的にはインストールしたOSユーザでしかSQL*Plus等のユーティリティを実行できない。
別のOSユーザから上記Oracleユーティリティを使いたい時は、
1.Oracleソフトウェアをインストールしたユーザのグループに入れてやる
2.changePerm.shシェルを実行してパーミッションの設定を変えてやる
をしなければならない。と思った。
1番目が一番楽な気がしますが、インフラチームで明確にOSユーザを設定してあると何かと面倒だしプロジェクトのセキュリティポリシー等で引っかかったり…。
なので、そういう場合は2で対処。
どちらも、ユーザの環境変数は設定しなければならない(ORACLE_SIDとかORACLE_BASEとか。PATHもやると便利かな、と)。
changePerm.shは、$ORACLE_HOME/installの下にあったと思います。
Oracleのマニュアルでは、HPか何かの『管理者リファレンス』に記載されていたと思いますがその他は未確認です。
2009-11-06
だいぶ間が空いてしまいました…。
最近はOracleにはあまり触っておらず、SQL ServerとMySQLが多いです。
SQL Serverは、bcpとかosqlとか意外と便利に思う今日この頃。
ネットワーク越しのエクスポート/インポート
Windows認証を用いてローカルサーバのSQL Server 2005のテーブルデータをエクスポートし、
ネットワーク越しに別サーバのSQL Serverのテーブルにインポートする一例です。
諸々環境依存の所はありますが、その辺がクリアになっているとコマンドプロンプト上のみからで行えます。
bcp <データベース名>.<スキーマ名>.<テーブル名> out "<フルパスでファイル名>" -n -T
bcp <データベース名>.<スキーマ名>.<テーブル名> in "<フルパスでファイル名>" -n -S <インポートしたいサーバのIPとかホスト名> -T
テーブルデータを消したい場合は、同様にコマンドプロンプトから以下のようにしたり。
osql -E -S <サーバ名(ローカルなら[localhost])> -d <データベース名> -Q "TRUNCATE TABLE <スキーマ名>.<テーブル名>"
トランザクションログを消したい場合は、、、
osql -E -S <サーバ名(ローカルなら[localhost])> -d <データベース名> -Q "BACKUP LOG <データベース名> WITH TRUNCATE_ONLY"
データベースのエディションによっては使えない?
bcpコマンド及びosqlコマンドの詳細オプションはMSDNを参照してください。
osqlコマンドは未来のバージョンでは削除予定らしいので、sqlcmdコマンドの使用が推奨みたいです。
大文字小文字
MySQLではcharとvarcharの、(少なくとも半角英数字の。それ以外は試していません)大文字小文字を
区別してくれないようです。
ただし、「BINARY」属性を付けると大文字小文字を区別してくれます。
マニュアルを読みましょうって話だと思いますが…こういう仕様なんですねぇ…。
「show create table」コマンドを用いるとテーブルの違いが明らかになりますが、
「desc」コマンドでは属性情報までは出ないようです。
例:
C:\xampp\mysql\bin>mysql -u ***** -p ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.37 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test;
Database changed
mysql>
mysql>
mysql>
mysql> create table test_table_01 (
-> name varchar(10)
-> );
Query OK, 0 rows affected (0.05 sec)
mysql>
mysql> insert into test_table_01 values ('AAA');
Query OK, 1 row affected (0.06 sec)
mysql> insert into test_table_01 values ('aaa');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test_table_01\G;
/*************************** 1. row ***************************
name: AAA
/*************************** 2. row ***************************
name: aaa
2 rows in set (0.00 sec)
ERROR:
No query specified
mysql>
mysql> select * from test_table_01 where name = 'aaa'\G;
/*************************** 1. row ***************************
name: AAA
/*************************** 2. row ***************************
name: aaa
2 rows in set (0.00 sec)
ERROR:
No query specified
mysql>
mysql> select * from test_table_01 where name = 'AAA'\G;
/*************************** 1. row ***************************
name: AAA
/*************************** 2. row ***************************
name: aaa
2 rows in set (0.00 sec)
ERROR:
No query specified
mysql>
mysql>
mysql>
mysql> show create table test_table_01\G;
/*************************** 1. row ***************************
Table: test_table_01
Create Table: CREATE TABLE `test_table_01` (
`name` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
ERROR:
No query specified
mysql>
mysql>
mysql> alter table test_table_01 modify name varchar(10) binary;
Query OK, 2 rows affected (0.09 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql>
mysql> select * from test_table_01 where name = 'aaa'\G;
/*************************** 1. row ***************************
name: aaa
1 row in set (0.02 sec)
ERROR:
No query specified
mysql>
mysql>
mysql> select * from test_table_01 where name = 'AAA'\G;
/*************************** 1. row ***************************
name: AAA
1 row in set (0.00 sec)
ERROR:
No query specified
mysql>
mysql>
mysql> show create table test_table_01\G;
/*************************** 1. row ***************************
Table: test_table_01
Create Table: CREATE TABLE `test_table_01` (
`name` varchar(10) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
ERROR:
No query specified
mysql>