728x90
반응형

개요

Confluence버전이 오래 된 버전을 업그레이드합니다.

Confluence 5.10.8 → Confluence 7.3.5

또한, 4byte아이콘을 대응하기 때문에 MySQL버전을 5.6에서 5.7으로 업그레이드합니다(utf8->utf8mb4).

 

준비 작업

소프트웨어 다운로드:

https://www.atlassian.com/ja/software/confluence/download에서 아래의 Confluence버전을 다운로드한다
atlassian-confluence-7.3.5.tar.gz

https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.33/bin/apache-tomcat-9.0.33.tar.gz에서 Tomcat을 다운로드한다
새 버전의 설치 파일을 컨플루언스 서버 (/home/infra/)에 업로드 또는 wget 등

https://dev.mysql.com/downloads/connector/j/5.1.html에서 아래의 mysql드라이버를 다운로드한다
mysql-connector-java-5.1.48.tar.gz

다운로드 파일을 해제하고, mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar를

 컨플루언스 서버

(/home/infra/)에 전송

 

Confluence버전 업

  • 서비스 정지
    systemctl stop nginx
    systemctl stop tomcat
    systemctl stop mysqld
  • 백업으로 AMI작성
  • Confluence버전 업
    cd /home/infra
  • tar zxvf atlassian-confluence-7.3.5.tar.gz
    chmod 775 atlassian-confluence-7.3.5/confluence
    chown tomcat: -R atlassian-confluence-7.3.5/confluence
    mv /opt/apache-tomcat-8.0.47/webapps/confluence /tmp/
    mv atlassian-confluence-7.3.5/confluence /opt/apache-tomcat-8.0.47/webapps/
  • 설정 파일 변경
    vi /opt/apache-tomcat-8.0.47/webapps/confluence/WEB-INF/classes/confluence-init.properties
- # confluence.home=/var/data/confluence/
+ confluence.home=/var/data/confluence/
  • MySQL Connector파일 갱신
  • chown tomcat: mysql-connector-java-5.1.48-bin.jar
    mv mysql-connector-java-5.1.48-bin.jar /opt/apache-tomcat-8.0.47/webapps/confluence/WEB-INF/lib/
  • /etc/my.cnf설정 변경
    transaction-isolation=READ-COMMITTED를 추가하는

  • Tomcat버전 업
    tar zxvf apache-tomcat-9.0.33.tar.gz
    mv /opt/apache-tomcat-8.0.47/bin /tmp
    mv /opt/apache-tomcat-8.0.47/lib /tmp
    mv apache-tomcat-9.0.33/bin /opt/apache-tomcat-8.0.47/
    mv apache-tomcat-9.0.33/lib /opt/apache-tomcat-8.0.47/
    chown -R tomcat: /opt/apache-tomcat-8.0.47/bin /opt/apache-tomcat-8.0.47/lib
    mv /opt/apache-tomcat-8.0.47 /opt/apache-tomcat-9.0.33
    vi /etc/systemd/system/tomcat.service
Apache Tomcat 8
↓
Apache Tomcat 9
  
apache-tomcat-8.0.47
↓
apache-tomcat-9.0.33
  • 서비스 기동
    systemctl start mysqld
    systemctl start tomcat
    systemctl start nginx
  • 관리 화면에서의 설정
  • 포털  페이지 접속
    -"공동 편집"을 비활성
    -"앱을 관리"중의 활성화된 앱의 버전을 업데이트

MySQL버전 업(5.6→ 5.7)

  • 서비스 정지
    systemctl stop nginx
    systemctl stop tomcat
    systemctl stop mysqld

  • mysql5.6의 삭제
    rpm -qa | grep mysql
    rpm -e mysql57-community-release-el6-7.noarch
    rpm -e mysql-community-client-5.6.38-2.el6.x86_64 mysql-community-libs-5.6.38-2.el6.x86_64 mysql-community-common-5.6.38-2.el6.x86_64 mysql-community-server-5.6.38-2.el6.x86_64 --nodeps

  • mysql5.7설치
    yum localinstallhttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    yum install mysql-community-server
    yum install mysql-community-libs-compat
    mv /etc/my.cnf.rpmsave /etc/my.cnf

  • percona-x
    rpm -e percona-xtrabackup-22-2.2.13-1.el7.x86_64
    yum installhttps://repo.percona.com/yum/percona-release-latest.noarch.rpm
    yum install percona-xtrabackup-24

  • my.cnf의 설정 변경
    아래의 옵션을 삭제
    innodb_support_xa
    innodb_use_sys_malloc
    아래의 옵션을 추가
    secure-file-priv = ""

  • mysql실행
    systemctl start mysqld

  • mysql테이블의 체크와 업그레이드
    mysql_upgrade -uroot -p

  • DB의 문자 코드를 utf8에서 utf8mb4로 변경
vi /etc/my.cnf
  character-set-server = utf8mb4
  collation-server = utf8mb4_bin
  
systemctl stop mysqld
systemctl start mysqld
 
ALTER DATABASE confluence CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

 

기존 테이블 컬럼의 문자 코드를 utf8에서 utf8mb4로 변경

SET global FOREIGN_KEY_CHECKS=0;
 
SELECT CONCAT('ALTER TABLE ', table_name, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;')
FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C
WHERE C.collation_name = T.table_collation
AND T.table_schema = 'confluence'
AND
(
    C.CHARACTER_SET_NAME != 'utf8mb4'
    OR
    C.COLLATION_NAME != 'utf8mb4_bin'
) INTO OUTFILE '/tmp/alter-tables.sql';
 
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_bin', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'confluence'
AND DATA_TYPE = 'varchar'
AND
(
    CHARACTER_SET_NAME != 'utf8mb4'
    OR
    COLLATION_NAME != 'utf8mb4_bin'
) INTO OUTFILE '/tmp/alter-columns-1.sql';
 
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, ' CHARACTER SET utf8mb4 COLLATE utf8mb4_bin', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'confluence'
AND DATA_TYPE != 'varchar'
AND
(
    CHARACTER_SET_NAME != 'utf8mb4'
    OR
    COLLATION_NAME != 'utf8mb4_bin'
) INTO OUTFILE '/tmp/alter-columns-2.sql';
 
mysql -uroot -p confluence < /tmp/alter-tables.sql
mysql -uroot -p confluence < /tmp/alter-columns-1.sql
mysql -uroot -p confluence < /tmp/alter-columns-2.sql
 
SET global FOREIGN_KEY_CHECKS=1;

 

Confluence DB설정 파일의 변경
vi /var/data/confluence/confluence.cfg.xml

- <property name="hibernate.connection.url">jdbc:mysql://localhost/confluence?useUnicode=true&amp;characterEncoding=utf8</property>
+ <property name="hibernate.connection.url">jdbc:mysql://localhost/confluence?useUnicode=true&amp;connectionCollation=utf8mb4_bin</property>

 

  • 서비스 기동
    systemctl restart mysqld
    systemctl start tomcat
    systemctl start nginx
  • 화면 확인
    컨플루언스 포털 접속하여 캐시 클리어:"캐시 관리"→"모두 클리어"
  • 인덱스 다시 구축:"관리"→"콘텐츠의 인덱스 작성"
728x90
300x250

'IT > Confluence' 카테고리의 다른 글

Confluence 7.4.5로 업그레이드  (0) 2021.08.17
Confluence mysql percona backup 설정  (0) 2021.08.12
Confluence Upgrade  (0) 2021.08.09
Confluence 서버 이관 및 재설정  (0) 2021.08.09
Confluence 설정  (0) 2021.08.09
728x90
반응형

개요

Confluence버전, 미들웨어, 응답이 느리가 가상 Type이 안좋을 때

안정적 운용을 실시할 수 있도록, 우선은 보안 업데이트 및 현 단계의 미들웨어까지

Confluence의 최신 버전까지 올리는 일을 계획한다.

 

 

대응 절차

 

OS 업데이트

service tomcat6 stop
service mysql stop
  
yum update
yum update --enablerepo=epel
>tomcat6 정상 종료할 수 있게 됩니다.
 
reboot

 

애플리케이션(JAVA)의 변경, Add-on 갱신, DB 튜닝

 

  1. Add-on UPDATE 할 수 있도록 DB의 파라미터를 수정한다.
service tomcat6 stop
service mysql stop


infra-misc-test-3 # diff my.cnf my.cnf-`date +%F`
< max_allowed_packet=128M
  
service mysql start
  1. Oracle JAVA1.7설치
    Oracle사이트의 회원 등록을 실시하지 않으면 설치 패키지가 입수할 수 없다.(1.7이 낡은 때문)
java -version
 :현재 버전을 확인합니다.


rpm -ivh jdk-7u80-linux-x64.rpm


alternatives --config java
 :리스트 확인입니다.


alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_80/bin/java 3


java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
 
  1. JAVA_HOME환경 변수의 변경
infra-misc-test-3 # grep JAVA_HOME /etc/tomcat6/tomcat6.conf
#JAVA_HOME="/usr/lib/jvm/jre-1.7.0-openjdk.x86_64"
JAVA_HOME="/usr/java/jdk1.7.0_80"
  1. 서비스 구동
service tomcat6 start
  1. admin사용자로 포털에 로그인한 뒤"Manage add-ons"로 이동한다.
일반설정 -> Manage add-ons
 
  1. UPM업데이트
    화면 상단의 유니버설 플러그인 매니저를 UPDATE 한다. 페이지를 갱신하다.
  2. addon에서 무료 틀로 UPDATE 가능한 것은 모두 UPDATE를 실시한다.

 

포털 버전 업 (5.6.4>5.6.6)

지정 버전의 tar파일을 미리 다운로드한다.

https://ja.atlassian.com/software/confluence/download-archives

 

  1. 서비스 정지
service tomcat6 stop
service mysql stop

 

Confluence의 교환

tar zxvf confluence-VERSION.tar.gz
mv /var/lib/tomcat6/webapps/confluence /tmp/
chmod 775 confluence-VERSION/confluence
mv confluence-VERSION/confluence /var/lib/tomcat6/webapps/

데이터 지정

vi /var/lib/tomcat6/webapps/confluence/WEB-INF/classes/confluence-init.properties
- # confluence.home=/var/data/confluence/
+ confluence.home=/var/data/confluence/
  1. MySQL드라이버의 카피
cp -pR /tmp/confluence/WEB-INF/lib/mysql-connector-java-5.1.29-bin.jar /var/lib/tomcat6/webapps/confluence/WEB-INF/lib/

 

로그 리네임(기동시의 모니터링을 실시했기 때문)

cd /var/data/confluence/logs
mv atlassian-confluence.log atlassian-confluence.log.old
 

서비스의 기동과 모니터링

/etc/init.d/mysql start
/etc/init.d/tomcat6 start


tail -f /var/data/confluence/logs/atlassian-confluence.log

 

포털 버전 업(5.6.6>5.7.5)

지정 버전의 tar파일을 미리 다운로드한다.

https://ja.atlassian.com/software/confluence/download-archives

 

  1. 서비스 정지
service tomcat6 stop
service mysql stop

 

Confluence의 교환

tar zxvf confluence-VERSION.tar.gz
mv /var/lib/tomcat6/webapps/confluence /tmp/
chmod 775 confluence-VERSION/confluence
mv confluence-VERSION/confluence /var/lib/tomcat6/webapps/

데이터 지정

vi /var/lib/tomcat6/webapps/confluence/WEB-INF/classes/confluence-init.properties
- # confluence.home=/var/data/confluence/
+ confluence.home=/var/data/confluence/

 

MySQL드라이버의 카피

cp -pR /tmp/confluence/WEB-INF/lib/mysql-connector-java-5.1.29-bin.jar /var/lib/tomcat6/webapps/confluence/WEB-INF/lib/

로그 리네임(기동시의 모니터링을 실시했기 때문)

cd /var/data/confluence/logs
mv atlassian-confluence.log atlassian-confluence.log.old

캐쉬 파일 삭제

cd /var/data/confluence/
rm -rf index/* journal/*
rm -rf bundled-plugins plugins-cache plugins-osgi-cache plugins-temp


mysql -u root -p
mysql> use confluence
mysql> SELECT COUNT(entry_id) FROM journalentry;
mysql> DELETE FROM journalentry;
mysql> quit

서비스의 기동과 모니터링

/etc/init.d/mysql start
/etc/init.d/tomcat6 start


tail -f /var/data/confluence/logs/atlassian-confluence.log
 
  1. 문제가 없으면 admin 사용자로 포털에 로그인하여 검색 인덱스를 재구축한다.
    1. 일반 설정> 콘텐츠
  2. 인덱스 작성 캐시 클리어 한다.
    1. 일반 설정 > 캐시 관리 > 상세 뷰를 표시 > 맨 오른쪽 하단의 "모두 지우기"를 실시한다.
  3. 플러그인 업데이트
    1. 일반설정 > Manage add-ons > 무료범위 UPDATE를 모두 실행한다.
728x90
300x250

+ Recent posts