2008年9月18日木曜日

第7回「Outlook 2003 の .pst ファイルを Outlook の以前のバージョンで使用」

2ヶ月ですか...
はぁ

さて、第7回目のお題は「Outlook 2003 のPSTファイルを Outlook の以前のバージョンで使用」です。

Outlook 2003を使用していて、スペックの低いパソコンに移動とのことで、
Outlook 2000を使用することになりました。
.pst ファイルでバックアップが取れるみたいなので、
Outlook 2003でエクスポートして、Outlook 2000でインポートしたら
メールの移送は完了かなと思っていましたが、
インポートできませんでした。
へぇ

Outlook 2003 以前は、Unicode形式のPSTファイルに対応してないのが原因らしいです。

でも何とか以下の方法でOutlook の以前のバージョンで使用できるようになりました。
①Outlook 2003 からPSTファイルでエクスポートする。
②Outlook 2003 の[ファイル]-[データファイルの管理]-[追加]をクリック
③[Outlook 97-2002個人用フォルダファイル (.pst)]をクリック
④③のPSTファイルに①のPSTファイルをインポートする。
⑤③のPSTファイルをOutlook 2000のパソコンに転送。
⑥Outlook 2000で③のPSTファイルをインポート。
まぁ

バージョンが古いものに移行する場合は、面倒ということが
よくわかります。

2008年7月5日土曜日

第6回「VMware Serverの仮想マシンに外部からアクセスする(SSH編)」

毎日書くつもりが、もう1ヶ月ぐらい更新していなかった...
続けることは難しいものです。

さて、Webサーバーでファイル共有できるようになり便利になりましたが、
仕事柄Linux環境も使用できるようにしないといまいちです。

そこで、第6回目のお題は「VMware Serverの仮想マシンに外部からアクセスする(SSH編)」です。

1万円のパソコンを見つけ、Linux用サーバーにしようかなと思ってましたが、
部屋狭くなるし、電源コード増えたり、管理が大変になりそうで悩んでました。
悩んでいるうちに、仮想マシンで外部からアクセスできれば便利かなと思ったので、
試してみました。
日ごろからお世話になっているVMware Player(仮想マシン)で試してみましたが、
どうも接続できそうにありませんでした。

PlayerでだめならServerなら大丈夫かなというノリで試したら成功しました。
VMware Serverは無償でダウンロードができ、登録してシリアル番号を取得する必要があります。

ホストOSはCDブートで起動するKnoppixを使用します。
外部接続にはTera Termを使用します。

・VMware Server環境設定
①VMware Serverをインストール。Help→Enter Serial Number→シリアル番号を入力。
②File→New→Virtual Machine→Typical→Other(VersionはOther)→Use network address translation(NAT)→Disk size(GB)は1Gくらい

・SSHサーバ設定
③KnoppixのCDをCD-ROMに入れて、仮想マシンを起動。
④Knoppixが起動後、設定→ネットワークカードの設定→DHCP設定。
⑤その他→KNOPPIX→Services→Start SSH Server→パスワード設定
※④、⑤はバージョンによって方法が異なるかもしれません...
⑥VMware Serverと一緒にインストールされる仮想NICを設定するツール
Manage Virtual Networks(vmnetcfg.exe)を使って、以下のように設定。

NATタブ内のEdit→Port Forwording...→Incoming TCP ports内のAdd...→
Host port:22
Virtual Machine IP Address:192.168.XXX.XXX(仮想マシンのIP(ターミナルからifconfigして、inet addr:192.168.XXX.XXXの部分))
Port:22

・ルータ設定
⑦「ルータのNATアドレス変換をLAN側IPアドレスをサーバのローカルIP、プロトコルはTCP、ポート番号は22(SSH)に設定」→「IPフィルタは外部装置から開始されるTCPセッションを遮断しないようにする」

・外部接続
⑧Tera Term起動し、ホストをサーバのグローバルIP、TCPポートは22、サービスはSSHで接続。
⑨ユーザ名はKnoppix、パスフレーズはSSHサーバ起動時設定したパスワードを入力して接続完了。


これでちょっとしたLinux環境の試験ができそうです。
時間があれば、ホストOSを変えてみる予定です。

2008年6月15日日曜日

第5回「SQL文をGUIで作成できるフリーのデータベース開発環境を利用する」

もう、クポクポです。

では、第5回目のお題は「SQL文をGUIで作成できるフリーのデータベース開発環境を利用する」です。

何度も問い合わせして確認するのは面倒なものです。
そこで、SQL文をGUIで作成できるフリーソフト「黒猫 SQL Studio」です。
※前回までに作成したOracleXEを利用することを前提にしていきます。

まずはODBCの設定が必要です。
ODBCとは、データベースにアクセスするためのソフトウェアの標準仕様で、
各データベースの違いはODBCドライバによって吸収され、DBアクセスできるようになります。

・ODBCの設定
「コントロールパネル」→「管理ツール」→「データ ソース (ODBC)」→「ユーザーDSNタブの追加をクリック














「Oracle in XEClientを選択する」











「データソース名に「xe」、TNSサービス名に「OracleXEサーバのIPアドレス」を記述後、接続テストでユーザ名、パスワードを入力して、接続できることを確認」











・黒猫 SQL Studioでテーブルを調べる
黒猫 SQL Studioをダウンロードする。
「メニューバーの「データベース」→「データベースに接続」をクリック」














「ODBC接続タブの「XE」を選択して接続をクリック」→「ユーザ名、パスワードを入力してログインする」

















DBエクスプローラ上にツリー上でユーザ、テーブル等が表示されている。
作成済みのテーブルを右クリックして、「テーブルを開く(全件)」をクリックすると、
そのテーブルの全件が表示される。
これで、いちいちselect文を入力しなくても内容を把握することができます。















また、ソートした形で表示させるためには、
作成済みのテーブルを右クリックして、「テーブルを開く(条件指定)」をクリックして、
ソート順序に数字を入力して、ソート方向(ASC、DESC)を選択する。












これで、SQLでの簡単な問い合わせや確認が楽になりました。

2008年6月1日日曜日

第4回「SQL*LoaderでDBに登録する」

はじめからネットワーク関連のことしか書いてないけど、
専門外のことばっかりしてる...

Oracleが使えるようになったので、家計簿でもつけようと思います。
ということで、第4回目のお題は「SQL*LoaderでDBに登録する」です。

買い物のたびに「insert into」で追加していくのもしんどいです。
そこで、SQL*Loaderの出番です。
SQL*Loaderは、CSVファイルからOracleのテーブルへデータを登録するツールです。
CSVファイルの編集はExcelで簡単にできるので便利です。

以下のようなテーブルにデータを追加していきます。
SQL> desc housekeeping
名前 NULL? 型
--------- -------- -------------

NO NOT NULL NUMBER(4)
BUYDATE VARCHAR2(8)
NAME VARCHAR2(20)
PRICE NUMBER(6)

NOはシーケンス番号。
BUYDATEは購入日。形式はYYYYMMDD。例:20080608
NAMEは商品名。
PRICEは価格です。

NOのシーケンス番号を実現するために、順序作成します。
次のようにすると、1 ~ 100、増分 1 のシーケンス番号作成。
例:
create sequence seq
  increment by 1 /*増分値*/
  start with 1 /*初期値*/
  maxvalue 100 /*最大値*/
  minvalue 1 /*最小値*/
  nocycle /*ループなし*/
  nocache /*キャッシュなし。メモリ上にキャッシュすることも可能で、異常終了した場合は、キャッシュされた値は欠番*/

※シーケンスの取得
select seq.nextval from dual;/*次のシーケンス*/
select seq.currval from dual;/*現在のシーケンス*/

シーケンス番号の利用方法は、
insert into housekeeping values(seq.nextval, 20080608, オカシ, 100);


SQL*Loaderには、コントロールファイル(.ctl)が必要になります。
「--」で始まっている行は コメントです。
例)housekeeping.ctl:

--LOAD ロードするレコード数
--SKIP スキップするレコード数
--ERRORS 許容するエラーの数 -1の場合、全て
--ROWS 何件毎にコミットするか -1の場合
OPTIONS(LOAD=100,SKIP=1,ERRORS=-1,ROWS=10)
--新しくデータ・ロードが開始
LOAD DATA
--データファイルを指定する。入力データであるCSVファイルや固定長ファイル。複数ファイルを指定することも可能。
INFILE 'csv/housekeeping.csv'
--何らかのエラーがあってDBに入れられないデータがあった場合、そのデータがこのファイルに出力される。
BADFILE 'bad/housekeeping.bad'
--データを追加する。
APPEND
--データを入れるテーブルを指定する。複数の出力先を指定することも可能。
INTO TABLE HOUSEKEEPING
--データを区切る文字を指定。カンマ区切りの場合は「TERMINATED BY ","」、タブ区切りにしたい場合は「TERMINATED BY X'09'」、固定長ファイルの場合は不要
FIELDS TERMINATED BY ","
--この指定があると、データの無い項目にNULLを入れる。
TRAILING NULLCOLS
--データ移送先テーブルの項目名を記述する。ファイル内のデータの並び順に合わせて列挙する。
--各項目の後ろには関数指定も可能。
(
NO "ユーザ名.seq.nextval",
BUYDATE,
NAME,
PRICE
)

DBに追加するCSVファイルを用意します。
例:housekeeping.csv

NO,BUYDATE,NAME,PRICE
,20080608,オカシ,100
,20080608,ノミモノ,150


実行方法は以下の通りです。
C:.

├─ctl
│ housekeeping.ctl
├─csv
│ housekeeping.csv


C:\sqlldr ユーザー/パスワード@SID control=ctl/housekeeping.ctl

実行すると、ログファイルが出来る。

housekeeping.log
スキップされた論理レコードの合計: 1
読み込まれた論理レコードの合計: 2
拒否された論理レコードの合計: 0
廃棄された論理レコードの合計: 0

失敗すると、badログファイル(bad/housekeeping)ができます。


これで何とか持続して家計簿が続けていくことができるのでしょうか...心配です。

5月分の経費を調べてみました。
SQL> select sum(price) from housekeeping where buydate between 20080501 and 20080601;

...うつです。

2008年5月31日土曜日

OracleXEサーバーを利用して、外部からSQLを利用できるようにする

やっとこさ、電気コンロの修理が終わって、
お湯を沸かせることができるようになった。
単なるスイッチの接触不良で修理を頼んで、すでに1ヶ月も経ってます...
たらいまわしの世の中にうんざりです。

では、第3回目のお題は「OracleXEサーバーを利用して、外部からSQLを利用できるようにする」です。

Oracleは有料や評価版(制限日数あり)だけだと思ったら、
機能は劣りますが、登録だけで無料で利用できる「OracleXE」が存在しました。
Oracle技術サイト日本版「OTN japan」ではダウンロードできないため、
US OTNからダウンロードが必要です。
(OTN japanのSELECT COUNTRYをUnited StatesにしてもUS OTNに繋がる)

・ダウンロード方法
「US OTNのDownloadsのタブから、Database 10g Express Editionを選択」→
「Oracle Database 10g Express Edition for Microsoft Windows を選択」→
「Accept Agreeをクリック、OracleXEUniv.exeとOracleXEClient.exeをユーザ登録してダウンロードする」

・インストール
OracleXEUniv.exeをダブルクリックして、次へを選択で完了。
ここで設定したパスワードはsystemユーザのログインに必要になる。
















・Windowsファイアウォール設定
「コントロールパネル」→「Windows ファイアウォール」→「有効に設定」→「例外タブでポート追加」→「名前:OracleXE、ポート番号:1521、TCPを設定する」(スコープでは任意もしくはカスタムで個別で設定されていること)

・ルータ設定
「ルータのNATアドレス変換をLAN側IPアドレスをサーバのローカルIP、プロトコルはTCP、ポート番号は1521に設定」→「IPフィルタは外部装置から開始されるTCPセッションを遮断しないようにする」

・動作確認
「スタート」→「すべてのプログラム」→「Oralce Database 10g Express Edition」→
「SQLコマンドラインの実行」

「connect system/インストール時のパスワード」
→「接続できること」

クライアント側(ルータ内ではない外部パソコン)で、
OracleXEClient.exeをインストール。(次へを押すだけ)
すべてのプログラムから「SQLコマンドラインの実行」を選択。
「connect system/インストール時のパスワード@サーバのグローバルIP」
→「接続できること」

SYSTEMユーザにログインして、デモ環境を作ってみる。
/*ユーザ作成*/
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO HOGE IDENTIFIED BY HOGEHOGE;
ALTER USER HOGE DEFAULT TABLESPACE USERS;
ALTER USER HOGE TEMPORARY TABLESPACE TEMP;
/*テーブル作成*/
CREATE TABLE hoge.TEAM
(NO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
NAME VARCHAR2(14) ,
LOC VARCHAR2(13) ) ;
/*データ追加*/
INSERT INTO hoge.TEAM VALUES
(10,'HOGE HOGE','NEW HOGE');
/*更新*/
COMMIT;

これで、HOGEユーザからTEAMテーブルを編集することができます。

めでたし、めでたし。

OracleXEにはNet Configuration Assistantを使って、
接続情報の設定(network\admin\tnsnames.ora)がないみたいです。
正規版のOracleからOracleXEに接続する場合は、Net Configuration Assistantを使って、
設定が必要みたいです。
サービス名:xe
ホスト名:OracleXEインストールしているマシン名もしくはIPアドレス
ネットサービス名:xe.world






2008年5月29日木曜日

一枚のLANカードに複数のIPアドレスを割り当てる方法

毎日書いていこうと思ったが、数日経っていた。
続けていくのは大変なことだと思いましたとさ。

では、第2回目のお題は、前回宣言した「一枚のLANカードに複数のIPアドレスを割り当てる方法」です。

二枚のLANカードを利用すれば、複数のIPアドレスが信じていた昔の自分が懐かしい...
競合が起こってダメだった記憶が鮮明に残っています。
リベンジです。

では、一枚のLANカードに複数のIPアドレスを割り当てる方法は以下のとおり。
→「インターネットプロトコル(TCP/IP)をクリックして、プロパティをクリック」



















今のご時世はDHCPなので、「IPアドレスを自動的に取得する」になっているが、
「次のIPアドレスを使うを選択する」(サブネットやDNSの各設定はプロバイダに加入した際の資料に
乗っているはず)にすると、詳細設定が選択できるようになり、詳細設定をクリックする。


















「IP設定タブの追加」→「追加するIPアドレス、サブネットマスク入力」



















これでおしまい。ためしにコマンドプロンプトでipconfig、pingしてみました。
どちらともちゃんとつながっていました。




















今日は簡単でした。

一枚のLANカードに複数のIPアドレスを割り当ての利用方法として、
1台で複数のWebサイトを実現に利用できそうです。以下の②に該当します。


①1個のIPアドレスだけを割り当てて、待ち受けるポート番号を複数用意して、ポート番号ごとにWebサイトに割り当てる。(標準は80番、社内用は8080番等。ただし、80番以外は明示的に指定が必要です。例:http://www.hogehoge.local/:8080)


②80番ポートを使って複数のWebサイトを公開できるので、URL指定時にポート番号を
記述する必要がいらない。
第1回のお題でのインターネットインフォメーションサービスのWebサイトアイコンを右クリックして、
「新規作成」の「Webサイト」を追加して実現できる。
でも、これができるのはWindows Serverだけっぽい。
Windows XP Professionalではできなかった...


また、明日

2008年5月26日月曜日

外部からルータ越えしてファイル共有する

パソコンをいじった時のメモ書を載せていきます。
また、その日に思ったことも書いていく予定。

では、第1回のお題は、「外部からルータ越えしてファイル共有する」です。

共有フォルダはLAN向き(Windows独自プロトコル(SMB))、
インターネット経由はWebフォルダ(HTTP+WebDAV)らしいです。

ので、Webフォルダ(IIS+WebDAV)で外部からルータ越えしてファイル共有することに挑戦しました。
HTTPサーバになる方のOSはWindows XP Professionalです。

・IISインストール


「スタート」→「コントロールパネル」→「プログラムの追加と削除」→「Windowsコンポーネントの追加と削除」→「IISにチェックオンして次へ(XPのCDが必要)」

















・外部アクセスのユーザ作成、共有するフォルダ(C:\hoge)作成、アクセス権設定(NTFS)

「エクスプローラのツールメニュー→フォルダオプション」→「表示タブの簡易ファイルの共有を使用するをチェックオフ」
「管理ツール」→「コンピュータの管理」→「ローカル ユーザとグループのユーザを右クリックから新しいユーザ(hogeuser)を作成」

「共有するフォルダ作成(C:\hoge)」→「プロパティ」→「共有タブで共有する、アクセス許可」→「Everyoneを削除、追加クリック、外部アクセスユーザ(hogeuser)を追加、フルコントロールをチェックオン」→「セキュリティタブの追加クリック、外部アクセスユーザ(hogeuser)を追加、フルコントロールをチェックオン」

・WebDAV設定

「コントロールパネル」→「管理ツール」→「インターネット インフォメーション サービス」→
「既定の Web サイトを右クリックして、新規作成→仮想ディレクトリ」→

















「エイリアス、ディレクトリパス、アクセス許可の設定を行う。」→
例:サーバのIPアドレス(192.168.1.2)、エイリアス(hoge)、ディレクトリパス(C:\hogehoge)の場合、
http://192.168.1.2/hoge/C:\hogehogeにアクセスできる仕組み。

「仮想ディレクトリのプロパティ」→「仮想ディレクトリタブで書き込み、ディレクトリの参照をチェックオン」→「ディレクトリ セキュリティタブの匿名...コントロールの編集」→「匿名アクセスをチェックオフ、基本認証チェックオフ、統合Windows認証をチェックオン」

「既定のWebサイトのプロパティ」→「WebサイトタブのIPアドレスをサーバのローカルIPを設定、ホームディレクトリタブでWebページを保存するフォルダを指定できる、また普通は読み取りだけチェック、スクリプトのみが無難」

・ルータ設定
「ルータのNATアドレス変換をLAN側IPアドレスをサーバのローカルIP、プロトコルはTCP、ポート番号は80に設定」→「IPフィルタは外部装置から開始されるTCPセッションを遮断しないようにする」

・Windowsファイアウォール設定
「コントロールパネル」→「Windows ファイアウォール」→「有効に設定」→「例外タブでポート追加」→「名前:Webサーバー、ポート番号:80、TCPを設定する」(スコープでは任意もしくはカスタムで個別で設定されていること)

・IEからWebDAVでアクセス
「クライアント側からIEのファイルメニューの開くをクリック」→「Webフォルダとして開くをチェックオン、http://サーバのローカルIPサーバのグローバルIP/エイリアス」(例:http://192.168.1.2123.456.7.8/hoge/)→「認証画面は作成したユーザ(hogeuser)名とパスワードを入力」(マイネットワーク上に登録されるので、次からそのアイコンをクリックで共有フォルダに接続できる。)
※ルータ内からグローバルIP指定で開こう(http://123.456.7.8/hoge/)としてもダメでした。外部のパソコンからグローバルIP指定で開くことはできます。

これで、たぶん外部からでもLAN内の共有フォルダと同じような扱いができるようになります。
(説明抜けがあるかもしれませんが、自分はできました。)

画像とか入れて、わかりやすくしたかったが、ここまで書くだけで相当時間がかかった。
だれもみないだろうなぁ、こんなのだと。
ブログってたいへん...

次は、一枚のLANカードに複数のIPアドレスを割り当てる方法を書くつもり。

ねむい..