Oracle 11g xe でWindowsからLinuxへのデータ移行時の注意点
exp、impの双方でNLS_LANGを一致させておかないと正しく移行できない。
☆export側(Windows)
1.データベースdb01内の全てのオブジェクトをを「expdat.dmp」ファイルにエクスポートする
C:> exp hoge/moge@db01 file=c:\expdat.dmp full=y
2.regeditでNLS_LANGを確認
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE (Oracle 11g XEの場合)
☆impory側(Linux)
1.NLS_LANGを設定
# export NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE
2.NLS_LANGを確認
# env | grep NLS_LANG
3.インポートを実行
# imp hoge/moge file=expdat.dmp touser=scott fromuser=scott
FullCalendar jQuey Plugin でイベントにアイコン等の画像を表示する方法
eventRender : function(event, element) {
// 1.追加するノードを作成(必要に応じて高さ等の属性を設定)
var addNode = document.createElement("img");
addNode.setAttribute("src", [画像のパス]);
addNode.setAttribute("height", "16");
// とりあえず追加する場合
for (var i = 0, len = element.context.childNodes.length; i < len; i++) {
if (element.context.childNodes[i].className == 'fc-content') {
element.context.childNodes[i].appendChild(addNode);
}
}
// タイトルの直後に追加する場合
for (var i = 0, len = element.context.childNodes.length; i < len; i++) {
if (element.context.childNodes[i].className == 'fc-content') {
for (var j = 0, len = element.context.childNodes[i].childNodes.length; j < len; j++) {
if (element.context.childNodes[i].childNodes[j].className == 'fc-title') {
element.context.childNodes[i].childNodes[j].appendChild(addNode);
}
}
}
}
}
別ポートでVirtual Hostを設定してCakePHPを運用する場合の注意点
ポート:8080
VirtuakHost用ドキュメントルート:/var/www/html2
VirtuakHost用のCakePHP:cakephp2
として
httpd.confで
1.ポート番号
→ Listen 8080
2.Virtual Host用に
→
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
3.Virtual Host設定
→
DocumentRoot /var/www/html2
ServerName URL:8080
4.VirtuakHost用のCakePHPをサーバに展開
5.VirtuakHost用ドキュメントルート上のindex.phpでROOTを設定
→
define('ROOT', dirname(dirname(__FILE__)) . DS. 'cakephp2');
CakePHPでfieldにCASEを使用する際のメモ
(CASE sex WHEN '1' THEN '男性' WHEN '2' THEN '女性' ELSE '未設定' END)
のように括弧でくくる
oracle 11g XE でキャラクタセットを変更した時のメモ
Oracleを使ったシステムの改修の仕事でサーバーに無償版のOracle 11g XEをインストールして、
先方から提供されたダンプファイルをインポートしたところ、
「ORA-12899: 列"XX"の値が大きすぎます(実際: XX、最大: XX)」といったエラーが頻発してしまいました。
インストールしたXEのデータベースキャラクタセットがUTF8だったのに元はSJISであることが原因でした。
データベースキャラクタセットの変更なんてコマンド1発だろうと思っていたらえらい大変でした。
ここを参考に(というかほぼそのまま)作業した内容を備忘のため書き留めておくことにします。
自分の環境に合わせて若干(ディレクトリ名等)変更しています。
■インスタンスの削除
>cleanup.bat (サービスの停止、インスタンスの削除をしてくれます)
■不要なファイルの削除
C:\oraclexe\app\oracle\product\11.2.0\server\dbs\* C:\oraclexe\app\oracle\product\11.2.0\server\database\*(oradba.exe以外) C:\oraclexe\app\oracle\oradata\XE\*
■インスタンスの作成
・以下をC:\oraclexe\app\oracle\product\11.2.0\server\database\initXE.oraとして保存
java_pool_size=4194304 large_pool_size=4194304 shared_pool_size=62914560 streams_pool_size=0 audit_file_dest='C:\oraclexe\app\oracle\admin\XE\adump' compatible='11.2.0.1.0' control_files='C:\oraclexe\app\oracle\oradata\XE\control.dbf' core_dump_dest='C:\oraclexe\app\oracle\admin\XE\cdump' db_name='XE' dispatchers='(PROTOCOL=TCP) (SERVICE=XEXDB)' job_queue_processes=2 open_cursors=300 os_authent_prefix='' pga_aggregate_target=40M remote_login_passwordfile='EXCLUSIVE' sessions=20 sga_target=140M shared_servers=1 undo_management='AUTO' undo_tablespace='UNDO'
・oradimユーティリティを実行し、インスタンスを作成
oradim -NEW -SID XE -SYSPWD manager -PFILE C:\oraclexe\app\oracle\product\11.2.0\server\database\initXE.ora
■インスタンス起動
>set ORACLE_SID=XE >sqlplus / as sysdba (アイドル・インスタンスに接続しました) SQL>startup nomount pfile=C:\oraclexe\app\oracle\product\11.2.0\server\database\initXE.ora (ORACLEインスタンスが起動しました)
・以下の内容をファイルC:\oraclexe\app\oracle\product\11.2.0\server\database\createDB.oraに保存
create database XE logfile group 1 ('C:\oraclexe\app\oracle\oradata\XE\redo1.dbf') size 32M, group 2 ('C:\oraclexe\app\oracle\oradata\XE\redo2.dbf') size 32M, group 3 ('C:\oraclexe\app\oracle\oradata\XE\redo3.dbf') size 32M character set JA16SJIS national character set utf8 datafile 'C:\oraclexe\app\oracle\oradata\XE\system.dbf' size 240M autoextend on next 16M maxsize unlimited extent management local sysaux datafile 'C:\oraclexe\app\oracle\oradata\XE\sysaux.dbf' size 48M autoextend on next 8M maxsize unlimited undo tablespace undo datafile 'C:\oraclexe\app\oracle\oradata\XE\undo.dbf' size 48M autoextend on default temporary tablespace temp tempfile 'C:\oraclexe\app\oracle\oradata\XE\temp.dbf' size 8M autoextend on;
■データベースを作成(sqlplus内)
SQL>@C:\oraclexe\app\oracle\product\11.2.0\server\database\createDB.ora (データベースが作成されました)
・カタログ定義スクリプトの実行
SQL>@C:\oraclexe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\catalog.sql
・PL/SQLパッケージ作成スクリプトの実行(かなり時間がかかります)
SQL>@C:\oraclexe\app\oracle\product\11.2.0\server\RDBMS\ADMIN\catproc.sql
・SYSTEMで接続し、PRODUCT_USER_PROFILE表に対するSELECT権限をPUBLICに付与
SQL>connect system/manager SQL>@C:\oraclexe\app\oracle\product\11.2.0\server\sqlplus\admin\pupbld.sql
■確認
SELECT PARAMETER, VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET%';
以上でした。
■追記:クライアントの文字コード
システム環境変数「NLS_LANG」の値として「JAPANESE_JAPAN.JA16SJISTILDE」とします。
ubuntuでrootパスワードを忘れたとき
#sudo passwd root
sudoでpasswdが使えればですが。