CANIAS mySQL de bulunan Geliştirme veritabanın yedekten dönülmesi…

Güncellemelerin yüklenmesi veya yanlışlıkla geliştirme veri tabanında kod kayıpları yaşanmasına sebep olabiliyor. Bu durumda mysql veritabanının yedeğinden dönüş gerekiyor. Bu işlem standart mysql komutları ile yapılıyor.

Komut isteminden çalıştırıyorsunuz mysql komutlarınızı. Burada kurtarma senaryosu iki şekilde olabiliyor. Tüm veritabanını açmayı planlıyorsanız, mevcut veritabanını silip yeniden yaratmanız veya yeni bir isimde yedeği açıp içinden sadece bir kısım kodu alacaksanız yeni bir veritabanı yaratmanız gerekecek.

Komutlar:

mySQL komut isteminde oturum açma:

C:\Documents and Settings\Administrator.PENTI>
mysql -u yetkili_kullanici -pSifre
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.0.90-community-nt MySQL Community Edition (GPL)

mySQL de mevcut veritabanın silinmesi:

mysql> drop database ias602d;
Query OK, 1 row affected (0.05 sec)

mySQL de yeni veritabanı yaratılması:

mysql> create database ias602fd character set utf8;
Query OK, 1 row affected (0.05 sec)
mysql> quit
Bye

mySQL de yeni boş veritabanına yedekten dönülmesi:

C:\Documents and Settings\Administrator.PENTI>
mysql -u yetkili_kullanici_adi -pSifre ias602fd 
< f:\mysql\Daily_b_ias602d.sql

MS SQL Server Veritabanı Bakım Planında Neler Olmalı?

Birkçok bakım planı sihirbaz kullanılarak görev olarak tanımlanabilmekte. Ancak 7/24 çalışan sitemlerde bu görevleri çalıştıracak boşluklar bulmak oldukça zor olabilmektedir. Zira bazı bakım işlemleri ya sistemin tüm kaynaklarını istemekte veya sistemin hiç kullanılmamasını istemektedir. Bu yüzden özelikle resmi tatillerde veritabanının kullanılmadığı zamanlarda bu bakımları yapmak sistemciler için önemlidir. Hangi sırada ve hangi bakımlar yapılmalıdır MS SQL sunucunuzda. Burada yazacaklarım tamamen veritabanının bakımı ile ilgili görevlerdir. Tabiki  sunucunun işletim sistemi ve donanım bakımları da yapılmalıdır.

1. Beckup Transaction Log: Logların yedeği alınmalı.

2. Beckup User Database: Bakım yapılacak kullanıcı veritabanları yedeklenmeli.

3. Check Database Integrity: Yedeği alınan veritabanlarının bütünkükleri kontrol edilmeli.

EXEC sp_msforeachdb 'DBCC CHECKDB(''?'')'

4. Shrink Database: Yedeği alınan veritabanları sıkıştırılmalı.

EXEC sp_MSForEachDB 'DBCC SHRINKDATABASE (''?'' , 0)'

5. Rebuild Index: Indexler yeniden yaratılmalı.

SET NOCOUNT ON
GO
--Set the fillfactor
DECLARE @FillFactor TINYINT
SELECT @FillFactor=80
DECLARE @StartTime DATETIME
SELECT @StartTime=GETDATE()
if object_id('tempdb..#TablesToRebuildIndex') is not null
begin
drop table #TablesToRebuildIndex
end
DECLARE @NumTables VARCHAR(20)
SELECT
s.[Name] AS SchemaName,
t.[name] AS TableName,
SUM(p.rows) AS RowsInTable
INTO #TablesToRebuildIndex
FROM
sys.schemas s
LEFT JOIN sys.tables t
ON s.schema_id = t.schema_id
LEFT JOIN sys.partitions p
ON t.object_id = p.object_id
LEFT JOIN sys.allocation_units a
ON p.partition_id = a.container_id
WHERE
p.index_id IN ( 0, 1 ) -- 0 heap table , 1 table with clustered index
AND p.rows IS NOT NULL
AND a.type = 1 -- row-data only , not LOB
GROUP BY
s.[Name],
t.[name]
SELECT @NumTables=@@ROWCOUNT
DECLARE RebuildIndex CURSOR FOR
SELECT
ROW_NUMBER() OVER (ORDER BY ttus.RowsInTable),
ttus.SchemaName,
ttus.TableName,
ttus.RowsInTable
FROM
#TablesToRebuildIndex AS ttus
ORDER BY
ttus.RowsInTable
OPEN RebuildIndex
DECLARE @TableNumber VARCHAR(20)
DECLARE @SchemaName NVARCHAR(128)
DECLARE @tableName NVARCHAR(128)
DECLARE @RowsInTable VARCHAR(20)
DECLARE @Statement NVARCHAR(300)
DECLARE @Status NVARCHAR(300)
FETCH NEXT FROM RebuildIndex INTO @TableNumber, @SchemaName, @tablename, @RowsInTable
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
SET @Status='Table '+@TableNumber+' of '+@NumTables+': Rebuilding indexes on '+@SchemaName+'.'+@tablename + ' ('+@RowsInTable+' rows)'
RAISERROR (@Status, 0, 1) WITH NOWAIT --RAISERROR used to immediately output status
SET @Statement = 'ALTER INDEX ALL ON ['+@SchemaName+'].['+@tablename +'] REBUILD WITH (FILLFACTOR = '+CONVERT(VARCHAR(3), @FillFactor)+' )'
EXEC sp_executesql @Statement
FETCH NEXT FROM RebuildIndex INTO @TableNumber, @SchemaName, @tablename, @RowsInTable
END
CLOSE RebuildIndex
DEALLOCATE RebuildIndex
drop table #TablesToRebuildIndex
Print 'Total Elapsed Time: '+CONVERT(VARCHAR(100), DATEDIFF(minute, @StartTime, GETDATE()))+' minutes'
GO

6. Reorganize Index: Indexler yenilenmeli.

7. Update Statistics: Güncellenmeli.

8. Beckup System Database: Sistem veritabanları güncellenmeli.

9. History Cleanup: Temizlik.

USE msdb
GO
DECLARE @DaysToKeepHistory DATETIME
SET @DaysToKeepHistory = CONVERT(VARCHAR(10), DATEADD(dd, -30,GETDATE()), 101)
EXEC sp_delete_backuphistory @DaysToKeepHistory
GO

10. Mainteance Cleanup: Eski bakım ve yedeklerin temizlenmesi.

 

WordPress MySQL veritabanınızın yedeğini almak.

WordPress ile eklenti ekleyip kaldırırken tüm yazılarım silindi. Hiç yedeğim de olmadığından blog hayatıma sıfırdan başlamam gerekiyor. İlk yazımı da biraz manidar olsun diye MySQL veritabanın yedeğinin phpMyAdmin ile ne kadar kolay olduğunu anlatarak başlıyorum.

MySQL veritabanınızı barındıran servis sağlayıcınızın hostingpanel adresinden hesabınıza giriş yapıyorsunuz. MySQL veri tabanı yönetimi linkinde mutlaka Web Tabanlı Yönetim (PHP MyAdmin) menüsü vardır. Aslında direkt web tarayıcınızdan http://phpmyadmin.host_adi.com gibi bir adresten de erişebiliyorsunuzdur. Kullanıcı adı, şifre ve sunucu_ip sini girip oturumu açmış oluyorsunuz. Sol panelden veritabanınızı seçtiğinizde wordpress tabloları karşınızda listeleniyor. Üst menülerden Dışa Aktar seçeneği ile tablolarınızın yedeğini bilgisayarınıza almış oluyorsunuz.

İçe Aktar seçeneği de yedekten geri yüklemeye yarayan seçenek.