Amazon Ec2 Linux üzerinde MsSql Server 2017 Çalışmaları ve Yedekleme Senaryosu

Windows üzerinde alışık olduğumuz MSSQL kullanımını Linux üzerinde deneyimleme fırsatım oldu.

Amazon AWS üzerindeki denemelerimde %30 Maliyet kazancı sağlanabildiğini gördüm. "Ubuntu Server 16.04 LTS (HVM) With SQL Server 2017 Web" AMI üzerinden bir Ec2 instance üreterek işe başldım.

Başlangıç olarak test amaçlı 1CPU-2GB RAM t2.small bir makine ile başlamayı tercih ettim. Maliyet Ölçümü için s3 calculator ile baktığımızda 66.72$ Aylık(720saat) kullanım ücreti görüntüledim. Windows için 75.69$ olarak %10 fark olduğunu görüntüledim. 

Linux Makina Kurulumu nasıl Yapılır ?

Amazon Console üzerinden Ec2 içerisinden Launch Instance seçeneğini kullanarak bir linux makina ayağa kaldırıyoruz. "Ubuntu Server 16.04 LTS (HVM) With SQL Server 2017 Web" olarak AWS Marketplace içerisinde bulabiliriz.

Linux üzerinde bağlantı nasıl sağlanır ?

PuttyGen aracılığı ile bağlantıyı sağlayabilirsiniz. Makina kurulumu sırasında size verilen .pem dosyasını kullanarak işlemi yapacaksınız. PuttyGen açtığınızda Load tıklayarak pem dosyasını verin. Public ve private key kayıtlarını sağlayın.

Belirleyeceğimiz şifre ile giriş yapacağız. Güçlü bir şifre belirleyin.

Herşey hazır olduğunda bağlantı için Putty.exe çalıştırın.

Puttgen içerisinde belirlediğimiz şifremizi burada kullanarak giriş yapıyoruz.

Ve giriş yapıldı. SQL çalışıyor mu kontrol edelim.

systemctl status mssql-server

Linux üzerinde MSSQL kurulumu nasıl yapılır ?

Öncelikle iki doküman size yardım olacaktır. SQL hazır olarak gelecektir (AWS EC2) Aşağıda linklerini paylaştım. Sqlcmd kullanımı için kurulumu yapıyoruz. Sql Agent aktif hale getiriyoruz. 

sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server

https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-sql-agent?view=sql-server-2017

Linux MSSQL sa şifresi nasıl belirlenir ?

sudo systemctl stop mssql-server
sudo MSSQL_SA_PASSWORD=ŞİFRENİZ /opt/mssql/bin/mssql-conf set-sa-password
sudo systemctl start mssql-server
systemctl status mssql-server

Linux MSSQL yeni kullanıcı ekleme nasıl yapılır ?

Buradan sonrası sql query ile ilerleyebileceğiniz yerlerdir. Örnek olarak.

sqlcmd -U sa -P Şifreniz -q "CREATE LOGIN KullaniciAdi WITH PASSWORD = 'ŞİFRENİZ';GO;CREATE USER KullaniciAdi FOR LOGIN KullaniciAdi;GO"

Linux MSSQL S3 üzerinde Backup/Restore nasıl gerçekleştirilir ?

apt install awscli kurulumunu yaparak s3 üzerindeki bir dosyanızı makina içerisine indirebilirsiniz.

aws s3 cp s3://sqlbackup/yourdatabase.bak ./yourdatabase.bak

sqlcmd -U sa -P Şifreniz -q "USE [master];GO;RESTORE DATABASE [yourdatabase] FROM DISK = '/yourdatabase.bak' WITH MOVE 'yourdatabase' TO '/mssql/data/yourdatabase.mdf',MOVE 'yourdatabase_log' TO '/mssql/data/yourdatabase.ldf', REPLACE;"

Sonrasında GO diyerek işlemi tamamlıyoruz. Artık var olan veritabanımızı içeri aktardık. Buradan sonrasını SQL management üzerinden bağlanarak maintaince plan üreterek zamanlamaları planlayarak backupları yönetebilir duruma geliyoruz. 

aws s3 sync ./ s3://sqlbackup şeklinde belirli bir klasördeki verilerin tamamını aktarabiliriz.

Düzenli S3 aktarımlı backup yönetimi için;

https://dev.to/lukebearl/ms-sql-server-backups-to-s3--on-linux-dan 

E-İmza - Pdf İmzalama - Usb bilgileri okuma

E-İmza ile ilgili internette bulduğum kaynaklardan derlemelerimi sizlerle paylaşmaktayım. Ek kodlarla uğraşmadan Argelog.eSign nuget packetini kullanarak direk olarak bağlantınızı tamamlayabilirsiniz. PDF imzalama için sertifika üretimi ve bilgilerin tamamının okutularak ekranda gösterilmesi örnekte mevcuttur. Itextsharp ile pdf imzalama örneği gerçekleştirilmiştir.

Örnek Kullanım.

https://github.com/mesutcakir/E-Imza-iTextSharp-ESYA-Api

Nuget:

https://github.com/mesutcakir/Argelog.eSign

 

Visual Studio & Unit Test | Asp.Net MVC Controller/Action Testi Oluşturmak

Merhabalar ASP.NET MVC kullanarak controller testi oluşturmak ile ilgili eğitim videos yayınladım. Aşağıdan ilgili videoya erişebilirsiniz.

Eğitim projesi anlatımı sırasında hazırlanan proje aşağıda belirtilmiştir. Bu linki kullarak proje dosyalarını indirebilirsiniz. MyProject.zip (421,09 kb) 

Visual Studio & Unit Test Projesi Oluşturmak

Visual Studio üzerinde Unit Test Projesi Oluşturmak ve çalıştırmayı öğretmeyi amaçlamaktadır.

TestCleanup, TestInitialize, TestMethod ve TestClass kavramlarını anlamlı hale getirmek için hazırlanmıştır.

 [TestClass]
    public class CalculateTests
    {
        private Calculate calculate;
        [TestInitialize]
        public void Init()
        {
            calculate = new Calculate();
        }

        [TestMethod]
        public void Sum_5_and_5_Return_10()
        {
            Assert.AreEqual(10, calculate.Sum(5, 5));
        }

        [TestCleanup]
        public void Cleanup()
        {
            calculate = null;
        }
    }

    public class Calculate
    {
        public int Sum(int x, int y)
        {
            return x + y;
        }
    }

 

Asp.NET MVC & NodeJS & AngularJS Geçişi | 1- C# ile Todo Uygulaması

Merhaba arkadaşlar, ASP.NET MVC eğitimlerinin ardından sizlere NodeJS ile ilgili eğitimler vermeye başlamak istedim. Bu bağlamda sizlere önce bir basit MVC uygulaması hazırladım. Sonrasındaki derslerde NodeJs ile ilgili hangi yerlere işaret ettiğini öğreniyor olacağız. Eğitimlerin sonuna geldiğimizde MVC ve NodeJS ile uygulama geliştirme ve yayınlama ile ilgili konuları işliyor olacağız. Eğitim'de belirtilen HTML Kaynağı aşağıdadır. Uygulamanın tamamını bu linkten indirebilirsiniz. [TodoApp.zip (12,46 kb)]

<html>
<head>
    <title>Simple Todo App</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.2/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.min.js"></script>
</head>
<body class="container">
<div>
    <br />
</div>
<div class="col-md-12">
    <div class="input-group">
        <input type="text" class="form-control" placeholder="Todo ">
        <span class="input-group-btn">
            <button class="btn btn-default" type="button">Add Todo</button>
        </span>
    </div>
    <h4>Todo List</h4>
    <div class="list-group">
        <a href="#" class="list-group-item active">First item</a>
        <a href="#" class="list-group-item">Second item</a>
        <a href="#" class="list-group-item">Third item</a>
    </div>
</div>
</body>
</html>