NFS 설치

RPM 명령어 이용 패키지 설치 확인

# rpm -qa | grep nfs
nfs-utils-1.0.6-70.EL4

# rpm -qa | grep portmap
portmap-4.0-63

yum으로 설치
# yum install portmap nfs-utils* libgssapi

rpm 으로 설치시

# wget http://mirror.oss.or.kr/pub/centos/4.4/os/i386/CentOS/RPMS/nfs-utils-lib-1.0.6-3.i386.rpm
# wget http://mirror.oss.or.kr/pub/centos/4.4/os/i386/CentOS/RPMS/libgssapi-0.8-1.i386.rpm
# rpm -Uvh *.rpm

 

NFS 서버 데몬 구동

# ntsysv
--NFS, portmap 자동 실행, iptables 방화벽을 체크 해제하고 nfs를 체크한다.

# /etc/rc.d/init.d/portmap start
portmap (을)를 시작합니다: [  확인  ]

# /etc/rc.d/init.d/nfs start
NFS 서비스를 시작하고 있습니다:  [  확인  ]
NFS 쿼터를 시작하고 있습니다: [  확인  ]
NFS 데몬을 시작함: [  확인  ]
NFS mountd를 시작하고 있습니다: [  확인  ]

NFS 서버의 공유목록을 관리하는 파일
# vi /etc/exports

-공유디렉토리 접근할 호스트(옵션)

예) /home/www 192.168.1.1(rw,sync)
-> 192.168.1.1 호스트의 접속 허용

예)/home/www 192.168.1.0/255.255.255.0(rw,sync)
-> 192.168.1.* 호스트의 접속 허용

설정 옵션
rw : 읽기, 쓰기 가능
ro : 읽기만 가능
secure : 클라이언트 마운트 요청시 포트를 1024 이하로 한다.
noaccess : 액세스 거부
root_squach : 클라이언트의 root가 서버의 root권한을 획득하는 것을 막는다
no_root_squash : 클라이언트의 root와 서버의 root를 동일하게 한다
sync : 파일 시스템이 변경되면 즉시 동기화한다.
all_squach : root를 제외하고 서버와 클라이언트의 사용자를 동일한 권한으로 설정한다.
no_all_squach : root를 제외하고 서버와 클라이언트의 사용자들을 하나의 권한을 가지도록 설정한다. 





 

공유 디렉토리를 만든다
# mkdir data
# chomd 777 data

 
확인
# exportfs -v
/home/data      192.168.1.1(rw,wdelay,root_squash)
-나오지 않는다면 nfs 를 재가동 해보시길 바랍니다.
# /etc/rc.d/init.d/nfs restart

[exportfs 명령어 사용법]

exportfs 명령어는 nfs서버를 다시 시작하지 않고도 공유목록을 수정할 수 있다.
- a : /etc/exports파일을 읽어 들인다.
- r : /etc/exports파일을 다시 읽어 들인다.
- u IP:/디렉토리 : 입력한 디렉토리를 공유목록에서 제외한다.
- v : 현재의 공유 목록을 확인한다.

2. 클라이언트 서버
# mkdir /home/data

mount 명령어로 NFS 서버의 공유 디렉토리를 마운트 시킨다.

# mount -t nfs 192.168.1.1:/data /home/data

 

만약 마운트가 되지 않으면 방화벽 사용 중지 (서버쪽 클라이언트쪽모두)
# /etc/init.d/iptables stop

nfs 재가동(서버측)
# /etc/rc.d/init.d/nfs restart

마운트 확인
# cat /etc/mtab | grep /home/data
192.168.1.1:/home/data /home/data1 nfs rw,addr=192.168.1.1 0 0

 

# df -h
 Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             6.8G  122M  6.3G   2% /
/dev/sda1              99M  8.5M   86M   9% /boot
none                  252M     0  252M   0% /dev/shm
/dev/sda8              54G   85M   52G   1% /home
/dev/sda7            1012M   34M  927M   4% /tmp
/dev/sda3             6.8G  919M  5.5G  15% /usr
/dev/sda5             3.9G   79M  3.6G   3% /var
192.168.1.1:/home/data
                       54G   85M   52G   1% /home/data1

부팅시 자동 마운트

# vi /etc/fstab

192.168.1.1:/home/data  /home/data              nfs     defaults        1 2

 

마운트 해제시
# umount /home/data

 

마운트가 안될때
마운트고 안될시 클라이언트 서버에도
NFS 설치 및 portmap 등 재가동 확인해보세요

'개발 > Linux' 카테고리의 다른 글

[LINUX] Subversion설치  (0) 2011.02.07
[LINUX] CentOS 5.5에 CMake 설치  (0) 2010.12.20
[LINUX] FIND AND REPLACE with SED  (0) 2010.12.13
[LINUX] HDD 복사  (0) 2010.10.28
[LINUX] TIME SYNC  (0) 2010.10.28
Posted by 나랑살자
,

vi /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini

showsplash org.eclipse.platform
--launcher.XXMaxPermSize 512m
-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=512m
-Xms40m
-Xmx512m

Posted by 나랑살자
,

12.5. iBATIS SQL Maps

The iBATIS support in the Spring Framework much resembles the JDBC / Hibernate support in that it supports the same template style programming and just as with JDBC or Hibernate, the iBATIS support works with Spring's exception hierarchy and let's you enjoy the all IoC features Spring has.

Transaction management can be handled through Spring's standard facilities. There are no special transaction strategies for iBATIS, as there is no special transactional resource involved other than a JDBCConnection. Hence, Spring's standard JDBC DataSourceTransactionManager orJtaTransactionManager are perfectly sufficient.

Note

Spring does actually support both iBatis 1.x and 2.x. However, only support for iBatis 2.x is actually shipped with the core Spring distribution. The iBatis 1.x support classes were moved to the Spring Modules project as of Spring 2.0, and you are directed there for documentation.

12.5.1. Setting up the SqlMapClient

If we want to map the previous Account class with iBATIS 2.x we need to create the following SQL map'Account.xml':

<sqlMap namespace="Account">

 

  <resultMap id="result" class="examples.Account">

    <result property="name" column="NAME" columnIndex="1"/>

    <result property="email" column="EMAIL" columnIndex="2"/>

  </resultMap>

 

  <select id="getAccountByEmail" resultMap="result">

    select ACCOUNT.NAME, ACCOUNT.EMAIL

    from ACCOUNT

    where ACCOUNT.EMAIL = #value#

  </select>

 

  <insert id="insertAccount">

    insert into ACCOUNT (NAME, EMAIL) values (#name#, #email#)

  </insert>

 

</sqlMap>

The configuration file for iBATIS 2 looks like this:

<sqlMapConfig>

 

  <sqlMap resource="example/Account.xml"/>

 

</sqlMapConfig>

Remember that iBATIS loads resources from the class path, so be sure to add the 'Account.xml' file to the class path.

We can use the SqlMapClientFactoryBean in the Spring container. Note that with iBATIS SQL Maps 2.x, the JDBC DataSource is usually specified on the SqlMapClientFactoryBean, which enables lazy loading.

<beans>

 

  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

    <property name="driverClassName" value="${jdbc.driverClassName}"/>

    <property name="url" value="${jdbc.url}"/>

    <property name="username" value="${jdbc.username}"/>

    <property name="password" value="${jdbc.password}"/>

  </bean>

 

  <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

    <property name="configLocation" value="WEB-INF/sqlmap-config.xml"/>

    <property name="dataSource" ref="dataSource"/>

  </bean>

 

</beans>

12.5.2. Using SqlMapClientTemplate and SqlMapClientDaoSupport

The SqlMapClientDaoSupport class offers a supporting class similar to the SqlMapDaoSupport. We extend it to implement our DAO:

public class SqlMapAccountDao extends SqlMapClientDaoSupport implements AccountDao {

 

    public Account getAccount(String email) throws DataAccessException {

        return (Account) getSqlMapClientTemplate().queryForObject("getAccountByEmail", email);

    }

 

    public void insertAccount(Account account) throws DataAccessException {

        getSqlMapClientTemplate().update("insertAccount", account);

    }

}

In the DAO, we use the pre-configured SqlMapClientTemplate to execute the queries, after setting up the SqlMapAccountDao in the application context and wiring it with our SqlMapClient instance:

<beans>

 

  <bean id="accountDao" class="example.SqlMapAccountDao">

    <property name="sqlMapClient" ref="sqlMapClient"/>

  </bean>

 

</beans>

Note that a SqlMapTemplate instance could also be created manually, passing in the SqlMapClient as constructor argument. The SqlMapClientDaoSupport base class simply pre-initializes aSqlMapClientTemplate instance for us.

The SqlMapClientTemplate also offers a generic execute method, taking a customSqlMapClientCallback implementation as argument. This can, for example, be used for batching:

public class SqlMapAccountDao extends SqlMapClientDaoSupport implements AccountDao {

 

    public void insertAccount(Account account) throws DataAccessException {

        getSqlMapClientTemplate().execute(new SqlMapClientCallback() {

            public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {

                executor.startBatch();

                executor.update("insertAccount", account);

                executor.update("insertAddress", account.getAddress());

                executor.executeBatch();

            }

        });

    }

}

In general, any combination of operations offered by the native SqlMapExecutor API can be used in such a callback. Any SQLException thrown will automatically get converted to Spring's genericDataAccessException hierarchy.

12.5.3. Implementing DAOs based on plain iBATIS API

DAOs can also be written against plain iBATIS API, without any Spring dependencies, directly using an injected SqlMapClient. A corresponding DAO implementation looks like as follows:

public class SqlMapAccountDao implements AccountDao {

       

    private SqlMapClient sqlMapClient;

   

    public void setSqlMapClient(SqlMapClient sqlMapClient) {

        this.sqlMapClient = sqlMapClient;

    }

 

    public Account getAccount(String email) {

        try {

            return (Account) this.sqlMapClient.queryForObject("getAccountByEmail", email);

        }

        catch (SQLException ex) {

            throw new MyDaoException(ex);

        }

    }

 

    public void insertAccount(Account account) throws DataAccessException {

        try {

            this.sqlMapClient.update("insertAccount", account);

        }

        catch (SQLException ex) {

            throw new MyDaoException(ex);

        }

    }

}

In such a scenario, the SQLException thrown by the iBATIS API needs to be handled in a custom fashion: usually, wrapping it in your own application-specific DAO exception. Wiring in the application context would still look like before, due to the fact that the plain iBATIS-based DAO still follows the Dependency Injection pattern:

<beans>

 

  <bean id="accountDao" class="example.SqlMapAccountDao">

    <property name="sqlMapClient" ref="sqlMapClient"/>

  </bean>

 

</beans>

Posted by 나랑살자
,

itunes 한글 깨질때

defaults write -app iTunes AppleLanguages "(ko)"

defaults write -app iTunes AppleLanguages "(en)"

Posted by 나랑살자
,
1. 준비

Z_METADATA
- Z_VERSION: PRIMARY KEY, INTEGER
- Z_UUID: VARCHAR(255)
- Z_PLIST: BLOB

CREATE TABLE Z_METADATA (Z_VERSION INTEGER PRIMARY KEY, Z_UUID VARCHAR(255), Z_PLIST BLOB)


Z_PRIMARYKEY
- Z_ENT: PRIMARY KEY, INTEGER
- Z_NAME: VARCHAR
- Z_SUPER: INTEGER
- Z_MAX: INTEGER

CREATE TABLE Z_PRIMARYKEY (Z_ENT INTEGER PRIMARY KEY, Z_NAME VARCHAR, Z_SUPER INTEGER, Z_MAX INTEGER)

INSERT INTO Z_PRIMARYKEY (Z_ENT, Z_NAME, Z_SUPER, Z_MAX) VALUES ()


- Table 이름은 ‘Z’ prefix를 붙인다. 
(실제 Core Data의 table 이름에는 Z가 없다)

- 모든 field도 Z로 시작해야 한다. 
(Core Data에서는 app schema가 ‘name’이라는 attribute를 가져도 SQLite에서는 ‘Zname’으로 field로)

- 다음 세 field를 가져야 한다.
Z_PK: PRIMARY KEY, INTEGER
Z_ENT: INTEGER
Z_OPT: INTEGER













'개발 > iOS' 카테고리의 다른 글

[IOS] image size  (0) 2010.11.28
[XCODE] Breakpoint가 안먹을 때  (0) 2010.11.28
[XCODE] 메모리 관리 규칙  (0) 2010.11.16
[XCODE] Redefine NSLog  (0) 2010.11.16
[XCODE] DEBUGING 팁  (0) 2010.11.16
Posted by 나랑살자
,

[MYSQL] 상태 확인

개발/MySql 2010. 11. 1. 09:26

[시스템 정보 확인] 
#echo "";echo "[DATE]";date;echo "";echo "[HOSTNAME]";hostname;echo "";echo "[UPTIME]";uptime;echo "";echo "[FS]";df -h;echo "";echo "[MEMORY]";free -m;echo "";
[SQL Node Process 확인]
#ps -ef | grep mysqld | grep -v grep
[MySQL Variables 확인]
#/usr/local/mysql/bin/mysql -uroot -p -e "show global variables;"
[MySQL Status 확인]
#/usr/local/mysql/bin/mysql -uroot -p -e "show global status;"
[DB의 Table 당 DATA 크기와 INDEX 크기 확인]
#/usr/local/mysql/bin/mysql -uroot -p -e "select table_schema,table_name,(data_length)/(1024*1024) as 'DATA(MB)',(index_length)/(1024*1024) as 'INDEX(MB)' from information_schema.tables ;"
[SQL Node 로그 확인]
#tail -100 /data/mysqldb/datadb/sql2.err
[MGM Node Process 확인] 
#ps -ef | grep ndb_mgmd | grep -v grep
[Cluster 상태 확인]
#/usr/local/mysql/bin/ndb_mgm -e "show"
[Cluster 메모리 사용량 확인]
#/usr/local/mysql/bin/ndb_mgm -e "all dump 1000"; tail -10 /mysqldb/clusterdb/ndb_1_cluster.log | grep -w usage
[MGM Node 로그 확인]
#/mysqldb/clusterdb/ndb_1_cluster.log
[각 시스템 상태 확인]
#vmstat -S m -n 5 60

[DATA Node Process 확인] 
#ps -ef | grep ndbd | grep -v grep
[DATA Node 로그 확인] 
#tail -20 /data/mysqldb/clusterdb/ndb_3_out.log
#tail -20 /data/mysqldb/clusterdb/ndb_3_error.log
[점검후 최종 상태 확인]
#/usr/local/mysql/bin/ndb_mgm -e "show"

'개발 > MySql' 카테고리의 다른 글

[MYSQL] 'table is full' 에러 날 때  (0) 2010.12.23
[MYSQL] 5.1이상에서 Partitioning ...  (0) 2010.12.16
[MYSQL] SQLDUMP  (0) 2010.10.28
[MYSQL] DB 생성 및 계정 설정  (0) 2010.10.28
[MYSQL] REPLICATION  (0) 2010.10.28
Posted by 나랑살자
,

[LINUX] HDD 복사

개발/Linux 2010. 10. 28. 16:03

파티션 까지 그대로 복사(바로 부팅 가능)

1. HDD Copy

# cat /dev/sda > /dev/sdb

아래 내용은 HDD Size가 서로 다를 경우 나머지 용량에 대해 처리 한다.

2. PV(Physical Volume) 생성

#mknod /dev/sda3 b 8 3
#chown root:disk /dev/sda3

#fdisk /dev/sda





파티션을 만들고 난후 재부팅
#pvcreate /dev/sda3


3. VG(Volume Group) 확장

#vgextend VolGroup00 /dev/sda3


#pvscan



#vgdisplay VolGroup00


4. LV(Logical Volume) 늘리기

#lvextend -L 12g /dev/VolGroup00/LogVol00


5. 파일 시스템 크기 조정
- LV를 파일 시스템에 반영

#resize2fs /dev/VolGroup00/LogVol00

6. 확인






출처 : http://linuxro.textcube.com/25

'개발 > Linux' 카테고리의 다른 글

[LINUX] Subversion설치  (0) 2011.02.07
[LINUX] CentOS 5.5에 CMake 설치  (0) 2010.12.20
[LINUX] FIND AND REPLACE with SED  (0) 2010.12.13
[LINUX] NFS 설치 및 설정  (0) 2010.11.11
[LINUX] TIME SYNC  (0) 2010.10.28
Posted by 나랑살자
,

[LINUX] TIME SYNC

개발/Linux 2010. 10. 28. 12:03
# yum install -y ntp.x86_64 system-config-date.noarch
# vi /etc/cron.daily/time_sync.ntp

#!/bin/bash
/usr/sbin/ntpdate -b 203.248.240.103 && /sbin/clock -w


# sh /etc/cron.daily/time_sync.ntp


'개발 > Linux' 카테고리의 다른 글

[LINUX] Subversion설치  (0) 2011.02.07
[LINUX] CentOS 5.5에 CMake 설치  (0) 2010.12.20
[LINUX] FIND AND REPLACE with SED  (0) 2010.12.13
[LINUX] NFS 설치 및 설정  (0) 2010.11.11
[LINUX] HDD 복사  (0) 2010.10.28
Posted by 나랑살자
,

[MYSQL] SQLDUMP

개발/MySql 2010. 10. 28. 11:16
mysql to mysql backup

#/usr/local/mysql/bin/mysqldump -hxxx.xxx.xxx.xxx -usqluser -psqlpwd sqldb | /usr/local/mysql/bin/mysql -uroot -C sqldb

'개발 > MySql' 카테고리의 다른 글

[MYSQL] 'table is full' 에러 날 때  (0) 2010.12.23
[MYSQL] 5.1이상에서 Partitioning ...  (0) 2010.12.16
[MYSQL] 상태 확인  (0) 2010.11.01
[MYSQL] DB 생성 및 계정 설정  (0) 2010.10.28
[MYSQL] REPLICATION  (0) 2010.10.28
Posted by 나랑살자
,
1. DB 생성
CREATE DATABASE sqldb default character set utf8;

2.계정 및 권한 생성
grant all privileges on sqldb.* to sqluser@'localhost' identified by 'passwd' with grant option;
grant all privileges on sqldb.* to sqluser@'%' identified by 'passwd' with grant option;
flush privileges;

3.권한 삭제
권한 삭제는 
REVOKE all on *.* from sqluser@host;

4.계정 삭제
drop user sqluser@host;


ALTEER DATABASE [DB] DEFAULT CHARACTER SET=UTF8;
ALTEER TABLE [TABLE] DEFAULT CHARACTER SET=UTF8;

'개발 > MySql' 카테고리의 다른 글

[MYSQL] 'table is full' 에러 날 때  (0) 2010.12.23
[MYSQL] 5.1이상에서 Partitioning ...  (0) 2010.12.16
[MYSQL] 상태 확인  (0) 2010.11.01
[MYSQL] SQLDUMP  (0) 2010.10.28
[MYSQL] REPLICATION  (0) 2010.10.28
Posted by 나랑살자
,