• genellikle gömülü sistemlerle uğraştığım için bugüne kadar işim düşmemişti hiç, pc arayüz programlarında ise basit access database işimi görüyordu hep.

    server/client çalışan donanım tasarlayıp bununla pc arayüzüne tcp/ip soket'le bağlanıp database işlemleri yapmak istediğimde programlama yüküm altından kalkılamayacak bir hal aldı.

    client servera soketle bağlanıyor, istediği verileri kendi tasarladığım komut setine göre istiyor, server database'den okuyup client'a kendi tasarladığım şekilde string olarak gönderiyor, client bu veriyi alıp bilgileri ayrıştırıp kullanıyordu.

    sadece tek bir tablo üzerinde yapılacak işlem hem mikroişlemci hem de pc arayüzünde çok gereksiz programlama yükü ve hantallık getiriyordu.

    ben de server programımın yerel database yazması, client'ların ise database'e internet üzerinden direkt bağlanmasını istedim. araştırdım ve mysql ve sql express arasında kısa bir bocalamadan sonra sql express'de şansımı denemeye karar verdim.

    hay amına koyim pratikte çok kolay olan iş için 1 haftam gitti. şimdi sql server kurup buna internet üzerinden erişmek isteyen acemiler için adım adım neler yapılması gerektiğini yazacağım. ilerde tekrar kurmam gerekirse kendi işime de yarar. bu adımların çoğunu ayrıntılı olarak yazmadım dermanım yok, ama google'dan konuyla ilgili araştırma yaparsanız resimli ve videolu anlatımlar mevcut. bu sadece benim gibi sql server acemilerine yol göstermek için. hatalarım varsa uyarın düzelteyim.

    1) sql server'ı işletim sisteminize uygun olarak indirin. işletim sisteminiz 64bit'se gidip yanlışlıkla 32bit'lik versiyonu kurmaya çalışırsanız size uyarı vermiyor, kuruluma başlıyor ve aralarda saçma sapan hatalar veriyor, saç baş yolarsınız bu dalgınlık yüzünden.

    2) kurulum sırasında "instance" yaratmanızı isteyecek, default olarak bırakırsanız sql express için sqlexpress, sql için ise mssqlserver olacaktır. kendiniz bir isim vermek istiyorsanız "named instance" kısmını seçin. ilerde bağlanmak için bu isimleri kullanacaksınız.

    3) kurulum sırasındaki bir diğer önemli ayar ise "server configuration" ayarı. eğer database'e uzak kullanıcıların bağlanmasını istiyorsanız "sql server browser" karşısında yazan "disabled" seçeneğini "automatic" yapmanız gerekiyor. eğer unutursanız zaten sonra "niye bağlanmıyor lan bu" diye araştırma yaptığınızda karşınıza çıkacaktır.

    4) kurulum bitti, sql server management studio'yu açtınız. daha kullanıcı yaratmadığınız için "windows authentication" kullarak giriş yapın. aslında "sa" kullanıcısı için parola belirleniyor kurulumda, "sql server authentication" seçeneğiyle kullanıcı adı olarak "sa" şifre olarak kurulumda belirlediğiniz şifre ile de giriş yapabilirsiniz.

    5) giriş yaptığınızda instance name altında "databases" göreceksiniz, sağ tuşla tıklayıp bir database yaratın.

    6) database'i yarattıktan sonra treeview görünümüne gelecek, + işaretine tıkladığınızda altında database diagrams, tables gibi alt menüleri göreceksiniz. gidip tablolarınızı yaratın. internette detaylı anlatım var.

    7) şimdi instance adı üzerine sağ tuş/properties/securty kısmına gelin. "server authentication" kısmında "sql server and windows authentication mode" seçeneğini işaretleyin. "login auditing" kısmını da "both failed and successful logins" olarak ayarlarsanız daha ayrıntılı raporlar alabilirsiniz.

    8) gene instance adı üzerine sağ tuş/properties/connections kısmına gelin. "allow remote connections to this server" seçeneğini işaretleyin.

    9) instance adı altında "security" menüsünün altında "logins" vardır, sağ tuşla tıklayıp bir kullanıcı yaratın ve izinlerini verin (okuma, yazma vs). nette bir sürü resimli videolu anlatım var. dikkat edin yarattığınız kullanıcıya sağ tuş/properties dedikten sonra status sekmesine gelin. orada permission ayarında "grant" seçili olmalı, login ayarında ise "enabled" seçili durumda olmalı.

    10) sql server configuration manager programını açın. sql server services'e tıkladığınızda instance adı ve sql server browser'ın durumu "running", start mode özelliği ise "automatic" olmalı. değilse nasıl yapılacağını araştırın, bu da resimli videolu anlatılmış.

    11) sql server network configuration altında ise instance adınıza tıklayın. tcp/ip karşısında "disabled" yazıyordur, çift tıklayın, enabled özelliğini yes yapın. ip adresses tabına geçin. ip1-ip6 arasının enabled özelliğini "yes" yapın. dinamik portları silin, "tcp port" özelliğine 1433 yazın. varsayılan port bu.

    12) bitti mi ? ak biter mi hiç...şimdi denetim masasını açıp windows güvenlik duvarını açıyoruz. ordan gelişmiş ayarlara giriyoruz. udp 1434, tcp 1433 için port açıyoruz. aynı zamanda sql server programına da izin veriyoruz. bu da detaylı anlatılmış nette. udp 1434'ü sql server browser için kullanıyoruz, tcp 1433 ise bağlanılan port.

    13) ha gayret amk, modeminizden port yönlendirmeniz gerekiyor. modeminizin arayüzüne girin, trafiğin sizin yerel ip'nize 1433 nolu porttan yönlendirilmesi için gerekli ayarları yapın.

    eğer arada adım atlamadıysam ve şansınız da yaver giderse benim gibi 1 hafta kafayı yemeden database'e uzaktan bağlanabilirsiniz.

    amme hizmeti olarak c# için connection string'i ve kodları da yazayım :

    public string myconnectionstring = "data source=xxx.xxx.xxx.xxx,1433;network library=dbmssocn;ınitial catalog=databseadi;user ıd=kullaniciadi;password=sifre;";
    sqlconnection sqlconn = new sqlconnection();
    sqlconn.connectionstring = myconnectionstring;
    sqlconn.open();

    datasource kısmına server'ın ip'sini yazın. geçmiş olsun.

    edit : farklı senaryolar için kullanmanız gereken "connection stringler" :

    https://www.connectionstrings.com/sql-server-2008/
  • microsoft nisan ayı itibariyle fiziksel soket lisanslamasını bırakıp çekirdek başı lisanslamaya geçmiş. bu da 24 çekirdek üzerinde sql server çalıştırmak için yaklaşık (bkz: msrp) 170,000 dolar para vermek anlamına geliyor. bu model değişimiyle sql server web siteleri için uygun bir veri tabanı olmaktan tamamen çıktı bana göre.

    oracle da aynı modele geçmiş ama zaten oracle hiçbir zaman web startup'ları için alternatif olmamıştı. sql server da aynı yola girdi sanırım. üzücü bir gelişme zira open source db teknolojilerinin (mysql vb) tco değerleri ve güvenlik karneleri tam insanları kapalı alternatifleri yeniden gözden geçirme noktasına getirmişken.

    bizspark ya da websitespark gibi startup'lara ücretsiz sağlanan yazılımlar scalability'de sql server'ın kellesine getirdiğinden çok para ödeme ihtyacı doğmasını engellemiyor sadece 3 yıl geciktiriyor.

    ilginç bir ayrıntı olarak windows azure'la en hayvani db'yi ve en hayvani bandwidth'i bile kiralasanız yaklaşık 30 yıl sql server'dan ucuza geliyor.
  • bu yazdığım yazının yolla tuşuna bastıktan sonra sonra gideceği server.
  • unix uzerinde calismamak gibi buyuk bir kusuru vardir.
  • 2017'nin ortalarında linux ortamında da çalışacak rdbms.

    http://blogs.microsoft.com/…ng-sql-server-on-linux/
  • sql server profiler ile zaman kaybetmeden aşağıdaki sorguyla son çalıştırılan query'ler listelenebilir.

    select top 10
    st.text as query, qs.execution_count, qs.last_execution_time
    from
    sys.dm_exec_query_stats as qs cross apply
    sys.dm_exec_sql_text(qs.sql_handle) as st
    order by qs.last_execution_time desc
  • bu yazılımı hatasız kurmak için harcanabilecek çabanın çok daha azı ile 2 adet deve başarı ile hendekten atlatılabilir.
  • sql server 2016 versiyonunda json destekleyecek olacak microsoft'un rdbms ürünü.
    kaynak
  • kökeni sybasedir.
hesabın var mı? giriş yap